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使用edge browser浏览器组件

Delphi 获取cpuid的函数

Delphi @ 与 ^ 运算符

Delphi 检测cpu内核数

Delphi 如何读取文件头 判断文件类型

Delphi firedac连接mysql的时候报错

Delphi md5加密base64加解密

Delphi驱动开发研究第一篇--实现原理

Delphi 如何让程序在按了 android 的 back 键后不关闭当前 from 或者不 app 退出

Delphi idhttp 获取链接连通状态

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



打赏

取消

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

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

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

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

评论

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