飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3529|回复: 1

各种加密方法演示(Delphi)(1)

[复制链接]

该用户从未签到

发表于 2007-8-5 09:35:41 | 显示全部楼层 |阅读模式
各种加密方法演示(Delphi)(1)

1.xor加密法
通常用来简单地加密字符串,当然也可以用来加密文件,但是文件太大,而程序又是单线程的话,需要花很长的时间,一般不采用来加密文件。
加密原理:一个数字连续与一个相同的数字进行两次xor操作以后,得到的仍然是本身,所以第一次xor就可以看做是加密,而第二次则可看做是解密。
代码演示:
  1. //加密字符串

  2. procedure stringenc(var s:string);
  3. var
  4.     i:integer;
  5. begin
  6.     for i := 1 to length(s) do
  7.         s[i] := chr(ord(s[i]) xor 123);//123是随意设置的,当然可以设置为任何值
  8. end;

  9. //加密文件

  10. procedure fileenc(filename:string);
  11. var
  12.     SF,DF:File of char;//SF和DF分别是Source File和Destination File的缩写
  13.     tempchar:char;
  14. begin
  15.     try
  16.         AssignFile(SF,filename);
  17.         reset(SF);
  18.         AssignFile(DF,ChangeFileExt(ExtractFileName(filename),'.zk'));//zk是我名字的缩写,呵呵!
  19.         Rewrite(DF);
  20.         while not Eof(SF) do
  21.             begin
  22.                 read(SF,tempchar);
  23.                 try
  24.                     tempchar := chr(ord(tempchar) xor 123);
  25.                 except
  26.                     CloseFile(DF);
  27.                     CloseFile(SF);
  28.                     DeleteFile(ChangeFileExt(ExtractFileName(filename),'.zk'));
  29.                 end;
  30.                 write(DF,tempchar);
  31.             end;
  32.         CloseFile(DF);
  33.         CloseFile(SF);
  34.     except
  35.         CloseFile(DF);
  36.         CloseFile(SF);
  37.         ShowMessage('An unknown error has occured,the application must terminate now!');
  38.         Application.Terminate;
  39.     end;
  40.     DeleteFile(filename);
  41.     RenameFile(ChangeFileExt(ExtractFileName(filename),'.zk'),filename);
  42.     ShowMessageBox('Encryption or Decryption succeeded!');//本过程既可用于加密也用于解密,所以提示加密或者解密成功
  43. end;  
复制代码


      
未完待续......
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-8-5 09:37:02 | 显示全部楼层
哎....怎么又斜了....


禁用 Discuz!代码  添加到引用中---wangyuankai

点击”插入代码“图标即可-----飘云
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表