如何将将文件中的字符串加密,就像delphi中pas编译后的dcu文件,打开显示的是乱码.
解决方案 »
- fastreport 打印图片问题
- QuotedStr使用的问题
- 如何判断RzCheckTree每一个复选框的节点?
- 请教高手 怎么获取listview(vsReport样式)里选定的某一格 是第几行和第几列
- 緊急求助﹕ 請問如何讓顯示在dbgrid里面的某些數據隱藏起來﹖sos....
- 怎样从一个集合里面取出第15到第30个记录。
- 怎样做才不锁库?请各位指点迷津。
- 各位大侠,怎样用Delphi取得当前程序的编译版本号?
- 一dbgrid的使用问题,高分求购!
- 没有骗大家吧说了给大家派高分已经有很多的朋友得了。高分征答新问题?(dyydyy)
- 一直很迷惑的问题
- 求教怎么在TreeList上覆盖另外一个控件
C2=22719; //字符串加密算法的公匙
//字符串加密函数
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;
if Result[I] = Chr(0) then
Result[I] := S[I];
end;
Result := StrToHex(Result);
end;//字符串解密函数
function Decrypt(const S: String; Key: Word): String;
var
I: Integer;
S1: string;
begin
S1 := HexToStr(S);
Result := S1;
for I := 1 to Length(S1) do
begin
if char(byte(S1[I]) xor (Key shr 8)) = Chr(0) then
begin
Result[I] := S1[I];
Key := (byte(Chr(0)) + Key) * C1 + C2; //保证Key的正确性
end
else
begin
Result[I] := char(byte(S1[I]) xor (Key shr 8));
Key := (byte(S1[I]) + Key) * C1 + C2;
end;
end;
end;