u_crypt.pas

来自「主要是对人员信息和工资进行管理」· PAS 代码 · 共 51 行

PAS
51
字号
unit U_crypt;

interface
uses classes;
const
 C1=52845;
 C2=22719;
function Encrypt(s:string;key:word):string;
function Decrypt(s:string;key:word):string;
implementation
function encrypt(s:string;key:word):string;
var
 i:integer;
 j: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;
 s:=result;
 result:='';
 for i:=1 to length(s) do
 begin
 j:=integer(s[i]);
 result:=result+char(65+(j div 26))+char(65+(j mod 26));
 end;
end;
function decrypt(s:string;key:word):string;
var
i:integer;
j:integer;
begin
result:='';
for i:=1 to (length(s) div 2) do
begin
j:=(integer(s[2*i-1])-65)*26;
j:=j+(integer(s[2*i])-65);
result:=result+char(j);
end;
s:=result;
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;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?