关于文件和字符串的加密?(100分)

D

dnb

Unregistered / Unconfirmed
GUEST, unregistred user!
请问哪位大虾能提供一个对文件和字符串加密的函数?小弟在此
先谢谢了!
 
hi dnd,
你是否分多了无出发了, 这类源程序太多啦, 随便找一个Delphi站点抓一个回来就
是啦, 给yysun加分让他传给你, Delphi世界的控件库里有好几个呢
 
到控件库去查一下, 关键字 encrypt
 
我只想了解具体算法,不想用现成的控件。
 
找一个带源代码的不就可以了
 
我有DES加密算法的Delphi写的源码。
 
我有DES加密算法的Delphi写的源码。
Email: rockboy@371.net
 
rockboy大虾:烦劳老兄将DES加密算法的Delphi写的源码
Email to : xftang@263.net!
好东东大家共享吗!
先谢谢了!
 
摘自“深度历险”:
<p><font color="#000000"><a href="http://vcl.vclxx.com/DELPHI/D32SHARL/CRYPTOV1.ZIP">CRYPTOV1.ZIP</a></font>
<p><font color="#000000">提供 MD5、RC5、 RC4、 IDEA、 BLOWFISH、 DES 六种算法的数据加解密的构件,<b>此为共享软件但可免费用於非商业用途
</b>(附源码),作者:CRYPTOCard Corporation。</font>
 
如果嫌“<a href="http://vcl.vclxx.com/delphigb">深度历险</a>”太<font color="#ff0000">慢</font>,另外还有一个选择:
<a href="http://personal.wol.com.cn/grass/CRYPTOV1.ZIP">CRYPTOV1.ZIP</a>
 
唉,人家要的是代码
这里是我好友JOJO的字符串加密解密函数,您应该可以直接使用了
//加密函数
Function EncrypKey (Src:String;
Key:String):string;
var
idx :integer;
KeyLen :Integer;
KeyPos :Integer;
offset :Integer;
dest :string;
SrcPos :Integer;
SrcAsc :Integer;
TmpSrcAsc :Integer;
Range :Integer;
begin
KeyLen:=Length(Key);
if KeyLen = 0 then
key:='Think Space';
KeyPos:=0;
SrcPos:=0;
SrcAsc:=0;
Range:=256;
Randomize;
offset:=Random(Range);
dest:=format('%1.2x',[offset]);
for SrcPos := 1 to Length(Src) do
begin
SrcAsc:=(Ord(Src[SrcPos]) + offset) MOD 255;
if KeyPos < KeyLen then
KeyPos:= KeyPos + 1 else
KeyPos:=1;
SrcAsc:= SrcAsc xor Ord(Key[KeyPos]);
dest:=dest + format('%1.2x',[SrcAsc]);
offset:=SrcAsc;
end;
Result:=Dest;
end;

//解密函数
Function UncrypKey (Src:String;
Key:String):string;
var
idx :integer;
KeyLen :Integer;
KeyPos :Integer;
offset :Integer;
dest :string;
SrcPos :Integer;
SrcAsc :Integer;
TmpSrcAsc :Integer;
Range :Integer;
begin
KeyLen:=Length(Key);
if KeyLen = 0 then
key:='Think Space';
KeyPos:=0;
SrcPos:=0;
SrcAsc:=0;
Range:=256;
offset:=StrToInt('$'+ copy(src,1,2));
SrcPos:=3;
repeat
SrcAsc:=StrToInt('$'+ copy(src,SrcPos,2));
if KeyPos < KeyLen then
KeyPos := KeyPos + 1 else
KeyPos := 1;
TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
if TmpSrcAsc <= offset then
TmpSrcAsc := 255 + TmpSrcAsc - offset
else
TmpSrcAsc := TmpSrcAsc - offset;
dest := dest + chr(TmpSrcAsc);
offset:=srcAsc;
SrcPos:=SrcPos + 2;
until SrcPos >= Length(Src);
Result:=Dest;
end;

 
dnd 老兄
告诉你到控件库去查一下, 至少有三个样例程序都有源代码, 算法就在其中
 
谢谢rockboy和王寒松兄提供的代码,我会通知版主将这100分
平均分给你们两位,谢谢!
 
接受答案了.
 
to rockboy:烦劳老兄将DES加密算法的Delphi写的源码给我一份,好吗?
zcm1975117@21cn.com
 

Similar threads

回复
0
查看
860
不得闲
D
回复
0
查看
828
DelphiTeacher的专栏
D
D
回复
0
查看
630
DelphiTeacher的专栏
D
顶部