Java cipher.getInstance()的DESede和triplede之间的差异

Java cipher.getInstance()的DESede和triplede之间的差异,java,cryptography,encryption,tripledes,Java,Cryptography,Encryption,Tripledes,我试图让TripleDES加密在Java中工作。在键控选项下,我想使用选项1,其中所有三个键都是独立的 从一开始,它说去,但我仍然不清楚 我正在运行示例,并在不同的项目中使用这两行代码: Cipher c = Cipher.getInstance("DESede"); Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding"); 两者都很好,那么有什么区别呢?我应该用一个而不是另一个吗?这两种方法都适用于使用三个单独的密钥

我试图让TripleDES加密在Java中工作。在
键控选项下,我想使用选项1,其中
所有三个键都是独立的

从一开始,它说去,但我仍然不清楚

我正在运行示例,并在不同的项目中使用这两行代码:

Cipher c = Cipher.getInstance("DESede");

Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding");
两者都很好,那么有什么区别呢?我应该用一个而不是另一个吗?这两种方法都适用于使用三个单独的密钥吗?

在Sun JCE provider中,“TripleDES”只是“DESede”的别名,它们都返回完全相同的密码。“DESede”是标准名称,应该适用于所有Java平台,但实际上,“TripleDES”可能也得到了相当广泛的支持

据介绍,SunJCE三重DES实现支持选项1和选项2:

Keysize必须等于112或168

密钥大小为112将生成具有2个中间密钥的三重DES密钥,密钥大小为168将生成具有3个中间密钥的三重DES密钥


在实例化密码时,应始终指定操作模式和填充,以明确意图。否则,实现可以自由选择,这可能会造成混淆。

DESede是3DES实现的描述性名称:DESede=DES Encrypt Decrypt Encrypt=Triple DES