导航:首页 > 文档加密 > 简单加密的代码实现

简单加密的代码实现

发布时间:2022-01-12 21:53:58

A. ct语言编程中简单加密计算的程序代码参考

你好!你先用什么加密方式,程序可以尝试完成

B. 用c++编写一个简单的文件加密程序

我自己想写一个加密的方式
还觉得这个挺难的。
如果真的没有太高的c++这一块的基础的话。
真的是没法做到,因为代码比较难写的。
只能求助于那些摸到水深水浅的那些c++大神们。
之后摸着他(她)们的大腿,然后就说把源代码的思路原形给我!

C. 求一个简单的透明加密源代码

事本没改过一个代码(但要把代码嵌入,所以变大了)

可以象普通记事本那样使用,但储存出来的文件会自动加密.

那么即使别人 走了你的文件,也无法打开看到正确的内容.

如果配合机器码加密的话,那么就算别人把这个记事本Copy走了,也无法打开得到正确的内容.

该技术同样可以应用在任何软件比如 OFFICE 系列上.

这里下载测试的 Notepad.rar

核心代码如下,其中用到我写的 Hook 控件系列和加密方案:

unit MainProc;

interface

uses
Windows, Classes,
HookCoreUnit, EncrypFileUnit;

procere Start;
procere Stop;

implementation

const
ReadFileAddr = $1005244;
ReadFileAddrRts = ReadFileAddr + SizeOf(HookCodeEx);

WriteFileAddr = $1004C2A;
WriteFileAddrRts = WriteFileAddr + SizeOf(HookCodeEx);

var
ReadFileHooker, WriteFileHooker: THookerCoreEx;
MemList: TList;
EF: TEncryptFile;

function EncryptBuffer(hFile: THandle; const Buffer; nNumberOfBytesToWrite: DWORD;
var lpNumberOfBytesWritten: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;
var
Data: PChar;
tmp: string;
Size: DWORD;
begin
Data:= @Buffer;

//加密
tmp:= EF.EncryptBuffer(Data, nNumberOfBytesToWrite);
Size:= Length(tmp);

Result:= WriteFile(hFile, tmp[1], Size, lpNumberOfBytesWritten, lpOverlapped);
end;

function DecryptBuffer(hFileMappingObject: THandle; dwDesiredAccess: DWORD;
dwFileOffsetHigh, dwFileOffsetLow: DWORD; dwNumberOfBytesToMap: DWORD): Pointer; stdcall;
var
MemAddr: Pointer;
tmp: string;
Size: DWORD;
begin
Result:= MapViewOfFile(hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow, dwNumberOfBytesToMap);

//解密
tmp:= EF.DecryptBuffer(Result, dwNumberOfBytesToMap);
Size:= Length(tmp);

//如果解密有效
if Size <> 0 then
begin
//分配内存
MemAddr:= VirtualAlloc(nil, Size, MEM_COMMIT, PAGE_READWRITE);
CopyMemory(MemAddr, @tmp[1], Size);
Result:= MemAddr;

//加入内存表
MemList.Add(Result);
end; //解密不了按原内容打开
end;

procere ProcessReadFile;
asm
//解密
call DecryptBuffer

//返回
push ReadFileAddrRts
end;

procere ProcessWriteFile;
asm
//加密
call EncryptBuffer;

//返回
push WriteFileAddrRts
end;

//需要控件的请联系 [email protected](msn), 非商用勿扰

procere Start;
begin
{$I .\K_SDK\VM_Start.inc}
EF:= TEncryptFile.Create(nil);
EF.Enable_Encryption:= True;
EF.E_PGM:= True;
EF.FileHead:= 'NotepadEx';

MemList:= TList.Create;

ReadFileHooker:= THookerCoreEx.Create;
ReadFileHooker.HookType:= CHT_JMP;

ReadFileHooker.Instruction:= PHookCodeEx(ReadFileAddr);
ReadFileHooker.Event:= DWORD(@ProcessReadFile);

WriteFileHooker:= THookerCoreEx.Create;
WriteFileHooker.HookType:= CHT_JMP;

WriteFileHooker.Instruction:= PHookCodeEx(WriteFileAddr);
WriteFileHooker.Event:= DWORD(@ProcessWriteFile);

ReadFileHooker.Hook:= True;
WriteFileHooker.Hook:= True;
{$I .\K_SDK\VM_End.inc}
end;

procere Stop;
var
i: Integer;
begin
{$I .\K_SDK\VM_Start.inc}
WriteFileHooker.Hook:= False;
ReadFileHooker.Hook:= False;

WriteFileHooker.Free;
ReadFileHooker.Free;

//释放内存
for i:= 0 to MemList.Count - 1 do
VirtualFree(MemList[i], 0, MEM_RELEASE);
MemList.Free;

EF.Free;
{$I .\K_SDK\VM_End.inc}
end;

end.

D. 代码加密怎么实现

你是想利用什么加密,加密方法有很多.

E. VB.net实现简单的加密解密--->该怎么写代码

什么~~这也叫加密啊,那我教你一招超简单的"加密"方法
一个textbox1(输入文本的) button1(名为加密) button2(名为解密)
button1的单击事件 TextBox1.Font = New System.Drawing.Font("Symbol", CType(9, Byte))
button2的单击事件 TextBox1.Font = New System.Drawing.Font("宋体", CType(9, Byte))
如果你要有密码的,你可以dim一个变量用来存储textbox2的值然后用来判断密码是否输入正确

F. #试一试#  编写程序实现简单的字符串加密

代码和运行情况如下:

G. 加密算法实现代码

这个是界面效果,我不是用C++写的,是用C#写的可以参考下:

实现的代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Collections;

usingSystem.IO;

usingSystem.Security.Cryptography;

usingSystem.Security;

namespaceKey

{

publicpartialclassfrmKey:Form

{

privatestringkey;//默认密钥"yupengcheng"

privatebyte[]sKey;

privatebyte[]sIV;

publicfrmKey()

{

InitializeComponent();

}

privatevoidForm1_Load(objectsender,EventArgse)

{

button4.Enabled=false;

}

///<summary>

///选择输入路径

///</summary>

privatevoidbutton1_Click(objectsender,EventArgse)

{

//openFileDialog1.Filter="所有文件(*.*)|*.*";

openFileDialog1.ShowDialog();

stringfilename=openFileDialog1.FileName;

inti=filename.LastIndexOf(".");

if(i!=-1)

{

stringfiletype=filename.Substring(filename.LastIndexOf("."));

if(this.radioButton1.Checked)

{

filename=filename.Replace("(解密文件)","");

textBox2.Text=filename.Substring(0,filename.LastIndexOf("."))+"(加密文件)"+filetype;

}

else

{

filename=filename.Replace("(加密文件)","");

textBox2.Text=filename.Substring(0,filename.LastIndexOf("."))+"(解密文件)"+filetype;

}

}

if(filename!="")

{

textBox1.Text=openFileDialog1.FileName;

}

}

///<summary>

///选择输出路径

///</summary>

privatevoidbutton4_Click(objectsender,EventArgse)

{

this.saveFileDialog1.ShowDialog();

if(saveFileDialog1.FileName!="")

{

this.textBox2.Text=saveFileDialog1.FileName;

}

}

///<summary>

///加密radioButton

///</summary>

privatevoidradioButton1_CheckedChanged(objectsender,EventArgse)

{

button3.Text="开始加密";

}

///<summary>

///解密radioButton

///</summary>

privatevoidradioButton2_CheckedChanged(objectsender,EventArgse)

{

button3.Text="开始解密";

}

///<summary>

///明密/暗密

///</summary>

privatevoidbutton2_Click(objectsender,EventArgse)

{

if(button2.Text=="明密")

{

textBox3.PasswordChar=Convert.ToChar(0);

button2.Text="暗密";

}

else

{

textBox3.PasswordChar=char.Parse("*");

button2.Text="明密";

}

}

///<summary>

///开始加密/开始解密

///</summary>

privatevoidbutton3_Click(objectsender,EventArgse)

{

if(this.textBox1.Text==""||this.textBox2.Text=="")

{

MessageBox.Show("文件路径不能为空!","警告提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

return;

}

if(textBox3.Text!="yupengcheng")

{

MessageBox.Show("输入的密码不正确,请重新输入!","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Error);

textBox3.Text="";

return;

}

else

{

key="yupengcheng";

if(button3.Text=="开始加密")

{

statusBar1.Visible=true;

statusBar1.Text="正在加密文件,请等待.....";

if(EncryptFile(this.textBox1.Text,this.textBox2.Text,textBox3.Text))

{

statusBar1.Text="加密完成。";

MessageBox.Show("文件加密成功!","成功提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

statusBar1.Visible=false;

}

else

{

statusBar1.Visible=true;

statusBar1.Text="正在解密文件,请等待.....";

if(DecryptFile(this.textBox1.Text,this.textBox2.Text,textBox3.Text))

{

statusBar1.Text="解密完成。";

MessageBox.Show("文件解密成功!","成功提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

statusBar1.Visible=false;

}

}

}

///<summary>

///取消

///</summary>

privatevoidbutton5_Click(objectsender,EventArgse)

{

Application.Exit();

}

///<summary>

///加密方法

///</summary>

///<paramname="filePath">加密输入路径</param>

///<paramname="savePath">加密输出路径</param>

///<paramname="keyStr">密匙</param>

///<returns></returns>

publicboolEncryptFile(stringfilePath,stringsavePath,stringkeyStr)

{

DESCryptoServiceProviderdes=newDESCryptoServiceProvider();

if(keyStr=="")

keyStr=key;

try

{

FileStreamfs=File.OpenRead(filePath);

byte[]inputByteArray=newbyte[fs.Length];

fs.Read(inputByteArray,0,(int)fs.Length);

fs.Close();

byte[]keyByteArray=Encoding.Default.GetBytes(keyStr);

SHA1ha=newSHA1Managed();

byte[]hb=ha.ComputeHash(keyByteArray);

sKey=newbyte[8];

sIV=newbyte[8];

for(inti=0;i<8;i++)

sKey[i]=hb[i];

for(inti=8;i<16;i++)

sIV[i-8]=hb[i];

des.Key=sKey;

des.IV=sIV;

MemoryStreamms=newMemoryStream();

CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);

cs.Write(inputByteArray,0,inputByteArray.Length);

cs.FlushFinalBlock();

fs=File.OpenWrite(savePath);

foreach(bytebinms.ToArray())

{

fs.WriteByte(b);

}

fs.Close();

cs.Close();

ms.Close();

returntrue;

}

catch

{

MessageBox.Show("找不到指定的文件,请重新输入!","警告提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

returnfalse;

}

}

///<summary>

///解密方法

///</summary>

///<paramname="filePath">解密输入路径</param>

///<paramname="savePath">解密输出路径</param>

///<paramname="keyStr">密匙</param>

///<returns></returns>

publicboolDecryptFile(stringfilePath,stringsavePath,stringkeyStr)

{

DESCryptoServiceProviderdes=newDESCryptoServiceProvider();

if(keyStr=="")

keyStr=key;

try

{

FileStreamfs=File.OpenRead(filePath);

byte[]inputByteArray=newbyte[fs.Length];

fs.Read(inputByteArray,0,(int)fs.Length);

fs.Close();

byte[]keyByteArray=Encoding.Default.GetBytes(keyStr);

SHA1ha=newSHA1Managed();

byte[]hb=ha.ComputeHash(keyByteArray);

sKey=newbyte[8];

sIV=newbyte[8];

for(inti=0;i<8;i++)

sKey[i]=hb[i];

for(inti=8;i<16;i++)

sIV[i-8]=hb[i];

des.Key=sKey;

des.IV=sIV;

MemoryStreamms=newMemoryStream();

CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write);

cs.Write(inputByteArray,0,inputByteArray.Length);

cs.FlushFinalBlock();

fs=File.OpenWrite(savePath);

foreach(bytebinms.ToArray())

{

fs.WriteByte(b);

}

fs.Close();

cs.Close();

ms.Close();

returntrue;

}

catch

{

MessageBox.Show("找不到指定的文件,请重新输入!","警告提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

returnfalse;

}

}

privatevoidtextBox1_TextChanged(objectsender,EventArgse)

{

if(textBox1.Text==""||textBox1.Text==null)

{

button4.Enabled=false;

}

else

{

button4.Enabled=true;

}

}

}

}

H. 我是大一学生,刚学c语言,请问怎么用代码实现给文件保密。简单的加密。注:我们是在linux环境下编程。

调用 zip 压缩加密码。绝对取巧但有效!
不过如果是 Linux 下面,你有很多函数库可以找。

其实加密随便啦,只要让别人不能读取出来就行了。可以说用 base64 转码一下都有加密效果。加密算法有很多的,只要别用不可逆就行了。最简单的来说,用密码异或一下就算入门加密技术了。

阅读全文

与简单加密的代码实现相关的资料

热点内容
程序员那么开一共有多少集 浏览:980
面试程序员被问数学问题怎么办 浏览:91
背大学英语的app哪个最好 浏览:719
哪个app买的衣服好 浏览:467
天刀以前玩过的服务器忘了怎么办 浏览:211
单片机基础代码解读 浏览:233
广东青少年编程学习 浏览:509
买男士香水去哪个app 浏览:548
androidsleep函数 浏览:151
android内核代码下载 浏览:665
服务器如何添加墨迹 浏览:747
diglinux安装 浏览:279
虚拟机执行命令 浏览:444
cctv16奥林匹克频道加密播出 浏览:899
c盘微信文件夹隐私 浏览:229
asp压缩mdb 浏览:670
node开源论坛源码 浏览:10
单片机比手机芯片还贵 浏览:35
java课表 浏览:557
如何在pdf里面修改 浏览:931