gpt4 book ai didi

java - 需要从 y、p、g 创建 DHPublicKey 作为 BigIntegers

转载 作者:行者123 更新时间:2023-11-30 04:07:12 24 4
gpt4 key购买 nike

我需要 DHPublicKey 来加密一些数据。因此,我已经获得了所有需要的参数,如 BigIntegers (y, p, g)。不幸的是,我没有看到从这些参数创建适合 DHPublicKey 接口(interface)的公钥对象的直接方法。有什么想法吗?

最佳答案

    KeyFactory keyFactory;
KeyPairGenerator kpg;
DHPublicKey originalDhPubKey, fromSpecsDhPubKey;
DHPublicKeySpec dhPubKeySpecs;
KeyPair kp;
BigInteger p, g, y;

// generate a DH key pair
kpg = KeyPairGenerator.getInstance("DH");
kp = kpg.generateKeyPair();

// get the DH public key
originalDhPubKey = (DHPublicKey) kp.getPublic();
// get P, G and Y specs
p = originalDhPubKey.getParams().getP();
g = originalDhPubKey.getParams().getG();
y = originalDhPubKey.getY();

// get a DH KeyFactory
keyFactory = KeyFactory.getInstance("DH");

// create a DHPublicKeySpec with the specs you have
dhPubKeySpecs = new DHPublicKeySpec(y, p, g);

// get the DHPublicKey
fromSpecsDhPubKey = (DHPublicKey) keyFactory.generatePublic(dhPubKeySpecs);

// Check that the DH public values are equal
System.out.println(originalDhPubKey.getY().equals(fromSpecsDhPubKey.getY()));

关于java - 需要从 y、p、g 创建 DHPublicKey 作为 BigIntegers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20476365/

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