Java cipher.getInstance()的DESede和triplede之间的差异
我试图让TripleDES加密在Java中工作。在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"); 两者都很好,那么有什么区别呢?我应该用一个而不是另一个吗?这两种方法都适用于使用三个单独的密钥
键控选项下,我想使用选项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