提供一些好的文件加密算法(50分)

  • 主题发起人 主题发起人 崆峒居士
  • 开始时间 开始时间
我也正在找,有了别忘记告诉我.
 
http://mantousoft.51.net/
exe文件加密

我还没看懂,注释太少
欢迎和我讨论
 
to fu_xiang_yu:
你好,您提供的网址上找不到源码了,劳驾发一份,谢谢。
aayzhao@263.net
 
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 := char(byte(S) xor (Key shr 8));
Key := (byte(Result) + 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 := char(byte(S) xor (Key shr 8));
Key := (byte(S) + 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.
 
to 老赵:我看了看,是没了,好像作者要求付费什么的?
我现在虽然有,但也不好发了,既然你问起,我就发给你吧

不过,其他朋友别再找我要了,毕竟别人已经不是把它作为
免费软件了

另:居士如果不想太麻烦而又不太追求级别,kindom的办法是个不错的主意
 
to fu_xiang_yu:
还没收到啊,我就是想看看学习学习。(exe文件加密。)
谢谢。
aayzhao@263.net
 
老赵,已发
 
kingdom 的方法已经用烂了 :-)
最好再稍微改一下
例如 Key 的运算
 
多人接受答案了。
 
后退
顶部