gpt4 book ai didi

java - 无法使用DH key签名,无法与他人进行KeyAgreement

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:34 25 4
gpt4 key购买 nike

我想知道是否存在可以同时执行 key 协议(protocol)和签名的公钥/私钥规范(最好在 Java 本身中,没有外部库)。

最佳答案

尝试椭圆曲线:

KeyPairGenerator eckpg = KeyPairGenerator.getInstance("EC");
ECGenParameterSpec p256 = new ECGenParameterSpec("secp256r1");
eckpg.initialize(p256);
KeyPair doubleUseKeyPair = eckpg.generateKeyPair();
KeyAgreement ecdh = KeyAgreement.getInstance("ECDH");
ecdh.init(doubleUseKeyPair.getPrivate());
// ...

Signature ecdsa = Signature.getInstance("SHA256withECDSA");
ecdsa.initSign(doubleUseKeyPair.getPrivate());
// ...

System.out.println(eckpg.getProvider());
System.out.println(ecdh.getProvider());
System.out.println(ecdsa.getProvider());

应该返回:

SunEC version 1.7

SunEC version 1.7

SunEC version 1.7

这当然是在 Sun/Oracle 的 Java 7 上。

请注意,大多数人认为在两个不同目的中使用相同的 key (对)是糟糕的 key 管理。它可能允许利用算法和协议(protocol)中的任一者或两者的组合的漏洞进行攻击。使用相同的 key 类型/强度当然可以。

关于java - 无法使用DH key签名,无法与他人进行KeyAgreement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com