我通过使用充气城堡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()));
答案 0 :(得分:2)
可能只是调用aKeyAgree.generateSecret()
两次就是问题。密钥协议应该只执行一次。如果要打印结果,则需要将其存储在(临时)变量中。