Diffie-Hellman对称键显示问题

时间:2017-11-14 13:58:12

标签: cryptography bouncycastle diffie-hellman

我通过使用充气城堡Diffie-Hellman密钥交换协议生成对称密钥,但是当我显示我生成的秘密时它会给我以下错误

java.lang.IllegalStateException:密钥协议尚未完成

从下面的代码中假设密钥协商过程已成功完成,并且从散列中确认两个密钥相似。

    MessageDigest   hash = MessageDigest.getInstance("SHA1");
    byte[] aShared = hash.digest(aKeyAgree.generateSecret());
    byte[] bShared = hash.digest(bKeyAgree.generateSecret());
    System.out.println(Arrays.toString(aKeyAgree.generateSecret()));

1 个答案:

答案 0 :(得分:2)

可能只是调用aKeyAgree.generateSecret()两次就是问题。密钥协议应该只执行一次。如果要打印结果,则需要将其存储在(临时)变量中。