[Delphi] XE2下实现标准的3DES加解密一种方法(可与Java,c#互通)

我之前在CSDN下载中放置了一个资源,介绍的是XE2实现与java互通的3DES加解密的一种解决方案。现在回想起来这个资源介绍的非常不清楚,没有交代3des的加密模式。在这里我重新介绍另一种实现3DES标准加解密的方法。

目前经过测试仅实现了3DES中ECB加密模式,填充方式为pkcs5pading的加解密,加密后的内容可用在线3DES加解密来验证,可得到与网页一致的加密结果。

非常遗憾的是没有找到加解密的源码,类似的资源非常少,经过多方的努力找到了 Chilkat Delphi DLL 。

这是一款国外软件, 分为ActiveX和DLL两种模式,带注册码的,不过不用担心,CSDN已经解决了这个问题。DLL的下载地址和注册机在这里,感谢分享:https://download.csdn.net/download/jccddd/9594035


我在官网上找到了使用方法,在这里分享实现的代码,开发环境为 xe2:

procedure TForm11.Button1Click(Sender: TObject);
var
crypt: HCkCrypt2;
success: Boolean;
ivHex: PWideChar;
keyHex: PWideChar;
encStr: PWideChar;
decStr: PWideChar;
begin
crypt := CkCrypt2_Create();
success := CkCrypt2_UnlockComponent(crypt,'okj0NzCrypt_XivvwOqDoY3M');
if (success <> True) then
begin
  Memo1.Lines.Add(CkCrypt2__lastErrorText(crypt));
  Exit;
end;
CkCrypt2_putCryptAlgorithm(crypt,'3des');
CkCrypt2_putCipherMode(crypt,'ecb');
CkCrypt2_putKeyLength(crypt,192);
CkCrypt2_putPaddingScheme(crypt,0);
CkCrypt2_putEncodingMode(crypt,'base64');
keyHex := 'RFpGUGFpc2lubzk5REpUQyEjJUAkXjI0';
CkCrypt2_SetEncodedKey(crypt,keyHex,'base64');

encStr := CkCrypt2__encryptStringENC(crypt,'Memo1');
Memo1.Lines.Add(encStr);

decStr := CkCrypt2__decryptStringENC(crypt,encStr);
Memo1.Lines.Add(decStr);

CkCrypt2_Dispose(crypt);
end;

例文源码下载路径:https://download.csdn.net/download/yueyun889/10274126


测试结果:


在线3DES加密工具得到的结果:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值