【发布时间】:2010-04-22 02:25:06
【问题描述】:
我想知道如何在 java 中生成随机的预主密钥 PMK? (与密钥交换和认证有关) 它与其他随机密钥生成相似吗?什么是预主密钥?
谢谢, 塞比。
【问题讨论】:
标签: java security authentication key
我想知道如何在 java 中生成随机的预主密钥 PMK? (与密钥交换和认证有关) 它与其他随机密钥生成相似吗?什么是预主密钥?
谢谢, 塞比。
【问题讨论】:
标签: java security authentication key
在我看来,您正在尝试制作自己的加密货币。如果是这种情况,请不要这样做。这是任何人都会给你的 #1 加密建议。
如果你想重新实现 TLS 或类似的东西,我建议你忘记你的尝试并使用经过良好测试的库。如果你必须实现它,那么请花时间仔细阅读规范。他们将解释每个步骤是什么以及如何计算它。
如果您只想获得一堆好的随机字节,SecureRandom 就是要使用的 API。
【讨论】:
try {<br/> KeyGenerator keyGen = KeyGenerator.getInstance("HmacMD5");<br/> SecretKey pmkey = keyGen.generateKey();<br/> byte[] PMKey = pmkey.getEncoded(); <br/> strPMK = MessageDigestAlgorithm.toHexString(PMKey);<br/> tv.append("\nPre-Master Key in hex: " + strPMK);<br/> }catch (NoSuchAlgorithmException e) {<br/> // TODO Auto-generated catch block e.printStackTrace(); <br/> }
try { KeyGenerator keyGen = KeyGenerator.getInstance("HmacMD5"); SecretKey pmkey = keyGen.generateKey(); byte[] PMKey = pmkey.getEncoded(); strPMK = MessageDigestAlgorithm.toHexString(PMKey); tv.append("\nPre-Master Key in hex: " + strPMK); }catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); }
MessageDigestAlgorithm 不是标准类,我不知道它是做什么的...... 3)您生成一个密钥,而不是预主密钥。预主密钥只需要一个SecureRandom。预主密钥是 SSL/TLS 等加密协议的特定内容......您是否将预主密钥与密钥混合在一起?我认为您需要在这里更详细地解释您的要求/用例......