java 16进制公钥_java-从十六进制字符串创建EC私钥

是的,这是正确的,EC私钥只是一个数字.如果您打印出私钥,您将看到相应公钥的X和Y坐标.

例如,假设生成了以下密钥对(secp256r1):

> EC私钥:

1b9cdf53588f99cea61c6482c4549b0316bafde19f76851940d71babaec5e569

> EC公钥:

0458ff2cd70c9a0897eb90a7c43d6a656bd76bb8089d52c259db6d9a45bfb37eb9882521c3b1e20a8bae181233b939174ee95e12a47bf62f41a62f1a20381a6f03

我们将私钥字节插入到您的函数中:

BigInteger priv = new BigInteger("1b9cdf53588f99cea61c6482c4549b0316bafde19f76851940d71babaec5e569", 16);

PrivateKey privateKey = getPrivateKeyFromECBigIntAndCurve(priv, "secp256r1");

System.out.println(privateKey);

并打印:

EC Private Key [91:05:8a:28:94:f9:5c:cb:c4:34:b8:69:e4:39:d4:57:59:c7:51:35]

X: 58ff2cd70c9a0897eb90a7c43d6a656bd76bb8089d52c259db6d9a45bfb37eb9

Y: 882521c3b1e20a8bae181233b939174ee95e12a47bf62f41a62f1a20381a6f03

如您所见,如果串联04 X Y,您将获得原始的公钥(04是未压缩的EC点标记).

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值