【中英混合文字符串加密解密】+++醒目醒目+++又是超难??? (100分)

  • 主题发起人 主题发起人 wdl
  • 开始时间 开始时间
W

wdl

Unregistered / Unconfirmed
GUEST, unregistred user!
论坛里面搜索到的算法对中文的处理都有问题,谁能提供能一切ok滴?
 
我有一个算法可以很完美地解决你的问题
不只原字符串可以中英文混合
加密解密的密码也可以是中英文混合的
需要的话可以跟我联系:hai_22@sina.com
 
邮件已发~[:D]
 
我以前写过加密解密之类的东西,用DES 、Blowfish算法
加密时 先对字符串进行预处理,转换为HEX再处理,
解密后 对字符串进行逆变换 即可。
 
hhaibin:怎么还没给我回信呀?邮件发了哦
大家谁有好办法继续跟贴,分不够再加~
 
好东东大家一起分享
 
需要加密解密的话,可使用RSA、BlowFish等算法,代码地址参考如下:
LockBox: http://sourceforge.net/projects/tplockbox/
GInt: http://triade.studentenweb.org/
 
我找到的,初步测试解决我的问题,但是算法是依据什么还没看懂[:(]
拿出来共享,也希望谁能看出点门道点拨一下
谢谢~
function TForm1.EncrypKey(Src: string;
Key: string): string;
var
KeyLen: Integer;
KeyPos: Integer;
offset: Integer;
dest: string;
SrcPos: Integer;
SrcAsc: Integer;
Range: Integer;
begin
KeyLen := Length(Key);
if KeyLen = 0 then
key := 'Think Space';
KeyPos := 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 TForm1.UncrypKey(Src: string;
Key: string): string;
var
KeyLen: Integer;
KeyPos: Integer;
offset: Integer;
dest: string;
SrcPos: Integer;
SrcAsc: Integer;
TmpSrcAsc: Integer;
begin
KeyLen := Length(Key);
if KeyLen = 0 then
key := 'Think Space';
KeyPos := 0;
offset := StrToInt('$' + copy(src, 1, 2));
SrcPos := 3;
repeat
try
SrcAsc := StrToInt('$' + copy(src, SrcPos, 2));
except
end;
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;
 
晕 这个不算加密呀 只是异或一下
 
可以算简单加密吧,目前这个对我还是可用的
更复杂的[:(]……
 
来自:Activer, 时间:2003-9-8 19:39:00, ID:2164984
我以前写过加密解密之类的东西,用DES 、Blowfish算法
加密时 先对字符串进行预处理,转换为HEX再处理,
解密后 对字符串进行逆变换 即可。

"转换为HEX再处理" 这是个是不错的方式!
原来犯愁的就是加密后的字符不可控--有很多不可见字符,存入数据库后再读出处理的时候会发生莫名其妙的问题

 
多人接受答案了。
 
后退
顶部