EncryptIt.pas


本文整理自网络,侵删。

 
unit EncryptIt;  interface USES     Classes; const      C1 = 52845;      C2 = 22719;  function Encrypt(const S: String; Key: Word): String; function Decrypt(const S: String; Key: Word): String; procedure EncryptFile(INFName, OutFName : String; Key : Word); procedure DecryptFile(INFName, OutFName : String; Key : Word);  implementation  function Encrypt(const S: String; Key: Word): String; var    I: Integer; begin   Result := S;   for I := 1 to Length(S) do       begin            Result[I] := char(byte(S[I]) xor (Key shr 8));            Key := (byte(Result[I]) + Key) * C1 + C2;       end;   end;  function Decrypt(const S: String; Key: Word): String; var    I: Integer; begin   Result := S;   for I := 1 to Length(S) do       begin            Result[I] := char(byte(S[I]) xor (Key shr 8));            Key := (byte(S[I]) + Key) * C1 + C2;       end;   end;   procedure EncryptFile(INFName, OutFName : String; Key : Word); VAR    MS, SS : TMemoryStream;    X : Integer;    C : Byte; begin MS := TMemoryStream.Create; SS := TMemoryStream.Create;     TRY        MS.LoadFromFile(INFName);        MS.Position := 0;        FOR X := 0 TO MS.Size - 1 DO              begin                   MS.Read(C, 1);                   C := (C xor (Key shr 8));                   Key := (C + Key) * C1 + C2;                   SS.Write(C,1);              end;        SS.SaveToFile(OutFName);     FINALLY            SS.Free;            MS.Free;     end; end;  procedure DecryptFile(INFName, OutFName : String; Key : Word); VAR    MS, SS : TMemoryStream;    X : Integer;    C, O : Byte; begin MS := TMemoryStream.Create; SS := TMemoryStream.Create;     TRY        MS.LoadFromFile(INFName);        MS.Position := 0;        FOR X := 0 TO MS.Size - 1 DO              begin                   MS.Read(C, 1);                   O := C;                   C := (C xor (Key shr 8));                   Key := (O + Key) * C1 + C2;                   SS.Write(C,1);              end;        SS.SaveToFile(OutFName);     FINALLY            SS.Free;            MS.Free;     end; end;  end. 

相关阅读 >>

Delphi stringgrid 实例5 本例功能:字体修改为居中,红色,20号

Delphi pchar与string互转

Delphi unigui form控件跳转

Delphi与汇编杂谈

Delphi base64编码/解码及zlib压缩/解压

Delphi整理二(object pascal语言)

Delphi 文本列数值排序从小到到

Delphi取得文件图标并在tlistview中显示

Delphi自动以管理员身份在vista 和 windows7 下运行程序

Delphi 获取国外格式日期时间

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...