java - JAVA与Delphi之间的解密与加密

标签 java delphi

我正在尝试用 DCPcrypt 对 Delphi 中加密的 JAVA 字符串进行解密。 DCPcrypt 使用哈希算法和自定义 key 进行初始化,然后使用加密算法。是否可以使用 Java™ 加密体系结构或其他 JAVA 加密库在 JAVA 中对其进行解密?如果不知道,您知道 JAVA 和 Delphi 中的哪些库组合允许对任何字符串的解密和加密获得相同的结果?

最佳答案

尝试 Chilkat Android 和 Chilkat Delphi:https://www.chilkatsoft.com

要让 Delphi 和 Android 的 Chilkat 示例生成完全相同的加密字符串,您必须做的一件事是将填充方案更改为 4。Android 示例的填充方案开箱即用,为 0,这会导致不同的尾随字节。值得注意的是,Delphi 和 Java 示例完全没有问题。

既然你已经得到了答案,并且已经花了一周的时间来解决这个问题,我可以告诉你什么是行不通的。

尝试在 JCE+JCA 和 Delphi Encryption Compendium 之间混合 3DES 消息,无论是在密码上使用 SHA1 还是 MD5,都是行不通的。对于初学者来说,DEC MD5 很糟糕。您最好使用 Indy MD5 哈希类。遗憾的是,XE 附带的 Indy 版本不包含加密功能,因为它们的 MD5 哈希类是完美且易于使用的。

Lockbox 不想与 Java 加密配合良好。如果是这样的话,可能是因为我对 DEC 已经精疲力尽,以至于失去了所有耐心。我再次花了整整一个星期的时间,日以继夜地尝试让各个部分正常工作。我从来没有接触过DCP。我尝试的下一件事是 Chilkat。

通过 Chilkat,我下载了试用版并安装了它们,运行了示例,一切都开箱即用。完毕。

关于java - JAVA与Delphi之间的解密与加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8083336/

相关文章:

java - JBDC - 跨并发线程以原子方式执行 SELECT 和 INSERT

java - 使用 hibernate 从数据库中删除项目

c# - DELPHI XE2 DLL无法添加到C#应用程序

与 SQlite 一起使用的 Delphi 组件

delphi - 如何将任何类型的文件编码为base64字符串,然后使用Lazarus/Delphi再次将其解码为文件?

delphi - 使用 Delphi 6 编译两次并在二进制文件上获得相同的校验和

java - 如何在所有 Java 类中使用 RabbitTemplate

java - 当类暴露给线程池时,清理 ThreadLocal 资源真的是我的工作吗?

delphi - 在 Delphi 窗体上的控件旁边添加验证器符号

java - 集成 Struts 2 和 hibernate 的最佳方法