gpt4 book ai didi

Java:如何仅使用纯Java.Security而不使用BouncyCaSTLe来生成私钥形式的KeyPair?

转载 作者:行者123 更新时间:2023-12-02 01:00:49 26 4
gpt4 key购买 nike

Java: 如何生成 KeyPair 形式的私钥,仅使用纯 Java.Security 而不使用 BouncyCaSTLe< 等第三方提供商

我正在使用此代码生成KeyPair:

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp256k1");
keyGen.initialize(ecSpec, new SecureRandom());
KeyPair keyPair = keyGen.generateKeyPair();

但是如果我想从我已经知道的私钥生成 KeyPair 该怎么办?我尝试在网上寻找解决方案,但没有成功。

最佳答案

Java 中的公钥就是 s * G,其中 s 是私钥( vector ),G 是椭圆曲线的基点。但是,Java 中无法执行 EC 点计算,因此您陷入了困境。

您可以做的一件事就是从外部库中提取 EC 点计算并使用它。好吧,或者你可以自己计算一下。毕竟,Java 确实为您提供了检索 s 的 BigInteger 值以及 G 的 x 和 y 值的选项。

有一种使用 ECDH 进行计算的迂回方法(毕竟,基本上点乘法),但是这是一个很长的解决方法,有很多技巧,你自己执行计算会很费力。更容易、更干净。

关于Java:如何仅使用纯Java.Security而不使用BouncyCaSTLe来生成私钥形式的KeyPair?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57770230/

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