3.9K Star 23.8K Fork 8.1K

GVPchinabugotech/hutool

 / 详情

使用SM2曲线点构建SM2问题

已完成
创建于  
2024-03-18 15:32

版本情况

JDK版本: openjdk_11
hutool版本: 5.8.26

问题描述(包括截图)

对国密算法工具-SmUtil 里面,在使用 使用SM2曲线点构建SM2 时,私钥 privateKeyHex ,以及 公钥x、公钥y ,包括下方的id ,能否添加到工具中直接生成,而非第三方工具生成公钥私钥
输入图片说明

评论 (4)

CloverAn 创建了任务 1年前

你可以使用:

KeyPair pair = SecureUtil.generateKeyPair("SM2");

密钥对可以使用Java的方法生成。

5641845 cloveran 1590023264 CloverAn
回复 Looly 成员
1年前

这个方法只能获取常规的公钥私钥吧,如果通过曲线点构建SM2,需要的1私2公1id 一共四组数据的

1463 loolly admin 1740020978 头像挂件 Looly 成员
回复 CloverAn
1年前

完整代码:

final KeyPair pair = KeyUtil.generateKeyPair("SM2");
final ECPrivateKey aPrivate = (ECPrivateKey) pair.getPrivate();

// D值
final BigInteger d = aPrivate.getD();

final ECPublicKey aPublic = (ECPublicKey) pair.getPublic();
final ECPoint point = aPublic.getQ();

// x
final BigInteger x = point.getXCoord().toBigInteger();
// y
final BigInteger y = point.getYCoord().toBigInteger();

这个获取过程确实不是很简答, 但是考虑到算法兼容性,这个是最好的。

5641845 cloveran 1590023264 CloverAn
回复 Looly 成员
1年前

好的,感谢

Looly 任务状态待办的 修改为已完成 1年前
Looly 添加了
 
question
标签
1年前

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1463 loolly admin 1740020978 5641845 cloveran 1590023264
Java
1
https://gitee.com/chinabugotech/hutool.git
git@gitee.com:chinabugotech/hutool.git
chinabugotech
hutool
hutool

搜索帮助