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

我试图让TripleDES加密在Java中工作。 从Keying Options下的Wikipedia文章中 ,我想使用选项1,其中All three keys are independent

从Cipher文档中可以看到这里的参考指南 ,但我仍然不清楚。

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

 Cipher c = Cipher.getInstance("DESede"); Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding"); 

编译都很好,那有什么区别? 我应该使用一个吗? 这两个都可以使用三个独立的键吗?

“TripleDES”只是Sun JCE提供程序中“DESede”的别名 – 两者都返回完全相同的密码。 “DESede”是应该适用于每个Java平台的标准名称,但在实践中,“TripleDES”也可能得到广泛支持。

根据此页面 ,SunJCE Triple DES实现支持选项#1和#2:

Keysize必须等于112或168。

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

在实例化密码时,应始终指定操作模式和填充,以使您的意图清晰。 否则,实现可以自由选择,这可能会令人困惑。