zhangke 发表于 2007-8-5 09:35:41

各种加密方法演示(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;

      
未完待续......

zhangke 发表于 2007-8-5 09:37:02

哎....怎么又斜了....


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

点击”插入代码“图标即可-----飘云
页: [1]
查看完整版本: 各种加密方法演示(Delphi)(1)