各种加密方法演示(Delphi)(1)
各种加密方法演示(Delphi)(1)1.xor加密法
通常用来简单地加密字符串,当然也可以用来加密文件,但是文件太大,而程序又是单线程的话,需要花很长的时间,一般不采用来加密文件。
加密原理:一个数字连续与一个相同的数字进行两次xor操作以后,得到的仍然是本身,所以第一次xor就可以看做是加密,而第二次则可看做是解密。
代码演示:
//加密字符串
procedure stringenc(var s:string);
var
i:integer;
begin
for i := 1 to length(s) do
s := chr(ord(s) xor 123);//123是随意设置的,当然可以设置为任何值
end;
//加密文件
procedure fileenc(filename:string);
var
SF,DF:File of char;//SF和DF分别是Source File和Destination File的缩写
tempchar:char;
begin
try
AssignFile(SF,filename);
reset(SF);
AssignFile(DF,ChangeFileExt(ExtractFileName(filename),'.zk'));//zk是我名字的缩写,呵呵!
Rewrite(DF);
while not Eof(SF) do
begin
read(SF,tempchar);
try
tempchar := chr(ord(tempchar) xor 123);
except
CloseFile(DF);
CloseFile(SF);
DeleteFile(ChangeFileExt(ExtractFileName(filename),'.zk'));
end;
write(DF,tempchar);
end;
CloseFile(DF);
CloseFile(SF);
except
CloseFile(DF);
CloseFile(SF);
ShowMessage('An unknown error has occured,the application must terminate now!');
Application.Terminate;
end;
DeleteFile(filename);
RenameFile(ChangeFileExt(ExtractFileName(filename),'.zk'),filename);
ShowMessageBox('Encryption or Decryption succeeded!');//本过程既可用于加密也用于解密,所以提示加密或者解密成功
end;
未完待续...... 哎....怎么又斜了....
禁用 Discuz!代码添加到引用中---wangyuankai
点击”插入代码“图标即可-----飘云
页:
[1]