求Delphi版标准3DES算法源码?
在网上搜集DES的代码,即DES.pas,现在不知道怎么去实现3DES?
3DES
明文:123
密匙:123
密文:196B8739B17BBFF5
//3DES(加密) = DES(key1, 加密) DES(key2, 解密) DES(key3, 加密)
//3DES(解密) = DES(key3, 解密) DES(key2, 加密) DES(key1, 解密)
function AnsiEncryStr_3DES(Str, Key: AnsiString): AnsiString;
var
Src,sKey : AnsiString;
begin
Result:='';
Src:=Str;
sKey:=Key;
if Length(sKey)<24 then
while Length(sKey)<24 do
sKey :=sKey + AnsiChar(0);
Result:=AnsiEncryStr(Src, AnsiCopy(sKey,1,8));
Result:=AnsiDecryStr(Result,AnsiCopy(sKey,9,8));
Result:=AnsiEncryStr(Result,AnsiCopy(sKey,17,8));
end;
//XXX后8位无数据
procedure Make3Key(inKey: array of Byte; var outKey: array of TKeyByte);
const
bitDisplace: array [0..23] of Byte =(
1,1,2,2, 2,2,2,2, 1,2,2,2, 2,2,2,1,
0,0,0,0, 0,0,0,0);
先求Make3Key的bitDisplace的24位表!
DES.PAS已有。
即3DES标准算法完整代码。