【问题标题】:how to generate PMK?如何生成 PMK?
【发布时间】:2010-04-22 02:25:06
【问题描述】:

我想知道如何在 java 中生成随机的预主密钥 PMK? (与密钥交换和认证有关) 它与其他随机密钥生成相似吗?什么是预主密钥?

谢谢, 塞比。

【问题讨论】:

    标签: java security authentication key


    【解决方案1】:

    在我看来,您正在尝试制作自己的加密货币。如果是这种情况,请不要这样做。这是任何人都会给你的 #1 加密建议。

    如果你想重新实现 TLS 或类似的东西,我建议你忘记你的尝试并使用经过良好测试的库。如果你必须实现它,那么请花时间仔细阅读规范。他们将解释每个步骤是什么以及如何计算它。

    如果您只想获得一堆好的随机字节,SecureRandom 就是要使用的 API。

    【讨论】:

    • 嗨,非常感谢您的回复。我现在使用了以下代码,您能否告诉我它是否是生成 PM-Key 的正确方法? 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(); }
    • 我发现代码存在一些问题。 1)您使用的是 MD5,这确实不是未来的证明。请尝试使用 SHA-2 家族的东西。 2)MessageDigestAlgorithm 不是标准类,我不知道它是做什么的...... 3)您生成一个密钥,而不是预主密钥。预主密钥只需要一个SecureRandom。预主密钥是 SSL/TLS 等加密协议的特定内容......您是否将预主密钥与密钥混合在一起?我认为您需要在这里更详细地解释您的要求/用例......
    猜你喜欢
    • 2012-06-19
    • 2022-10-19
    • 2011-10-18
    • 2011-06-04
    • 2019-04-14
    • 2019-12-14
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多