0

我正在从 JDK 1.5 迁移到 JDK 1.6。我遇到了难题。这是一段代码:

SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWithMD5AndTripleDES");
SecretKey key = factory.generateSecret(keySpec);
Cipher ecipher = Cipher.getInstance(key.getAlgorithm());

创建的 Cither 实例为 JRE 1.5 和 JRE 1.6 产生不同的结果(两种情况下都安装了 jce)。

为什么 JDK 会产生不同的结果?1.5 和 1.6 版本在 java 安全实现上有什么区别?

4

2 回答 2

1

这是 1.5 和 1.6 之间差异的链接:

http://en.wikipedia.org/wiki/Java_6#Java_SE_6_.28December_11.2C_2006.29

于 2013-09-19T22:51:05.173 回答
0

这适用于 JDK 1.5 和 JDK 1.6

        SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWithMD5AndTripleDES");
        SecretKey key = factory.generateSecret(keySpec);

        // instead of key.getAlgorithm(). For compatibility with JDK 1.5
        String newAlgorithm = "PBEWithMD5AndDES"; // the same value as in JDK 1.5

        ecipher = Cipher.getInstance(newAlgorithm);
于 2013-09-19T22:47:17.903 回答