我通过以下方式生成了一个 3DES 密钥:
KeyGenerator masterKeyGenerator = KeyGenerator.getInstance("DESede");
masterKeyGenerator.init(112);
SecretKey masterKey = masterKeyGenerator.generateKey();
现在我需要使用上面生成的主密钥派生一个新密钥,但我还需要在此密钥派生过程中使用随机字节(多样化数据)。
我可以仅使用较早生成的主密钥(以下代码示例)派生另一个密钥,但显然不是这样,因为我找不到如何使用主密钥和其他多样化数据来派生新密钥的方法。
SecretKeyFactory secondKeyFactory = SecretKeyFactory.getInstance("DESede");
KeySpec myKeySpec = new DESedeKeySpec(masterKey.getEncoded());
SecretKey secondKey = mySecretKeyFactory.generateSecret(myKeySpec);
有人建议我使用 Java 中的代码示例,说明如何使用主密钥和额外的随机字节 [](多样化数据)来派生新密钥?