Cryptography Diffie-Hellman对称键显示问题

Cryptography Diffie-Hellman对称键显示问题,cryptography,bouncycastle,diffie-hellman,Cryptography,Bouncycastle,Diffie Hellman,我使用bouncy castle Diffie-Hellman密钥交换协议生成对称密钥,但是当我显示生成的密钥时,它会给我以下错误 java.lang.IllegalStateException:密钥协议尚未完成 从下面的代码中假设密钥协商过程已成功完成,并且从哈希表中确认两个密钥相似 MessageDigest hash = MessageDigest.getInstance("SHA1"); byte[] aShared = hash.digest(aKeyAgree.g

我使用bouncy castle 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()));

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

是的,您是对的,这就是问题所在。非常感谢你的帮助。