首先引入maven依赖
org.bouncycastle bcprov-jdk15to18 1.69 cn.hutool hutool-all 5.8.16
然后运行以下代码
KeyPair pair = SecureUtil.generateKeyPair("SM2"); byte[] privateKey = pair.getPrivate().getEncoded(); byte[] publicKey = pair.getPublic().getEncoded(); //私钥 String privateKeyStr=Base64.getEncoder().encodeToString(privateKey); //公钥 String publicKeyStr=Base64.getEncoder().encodeToString(publicKey);
就可以得到私钥和公钥
公钥提供给通讯方验签
下面是签名的代码
String content = "我是Hanley."; final SM2 sm2 = SmUtil.sm2(privateKeyStr,null); String sign = sm2.signHex(HexUtil.encodeHexStr(content));
验签代码
final SM2 sm2 = SmUtil.sm2(null,publicKeyStr); // true boolean verify = sm2.verifyHex(HexUtil.encodeHexStr(content), sign);
加密
// 公钥加密,私钥解密 SM2 sm2 = SmUtil.sm2(null, publicKey); String encryptStr = sm2.encryptBcd(text, KeyType.PublicKey);
解密
// 公钥加密,私钥解密 SM2 sm2 = SmUtil.sm2(privateKeyStr, null); String decryptStr = StrUtil.utf8Str(sm2.decryptFromBcd(encryptStr, KeyType.PrivateKey));
好了,以上就是sm2util的使用介绍了,hutool还有很多强大的工具类,方便程序员们的调用
到此这篇关于java生成sm2使用hutool生成公钥私钥的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文地址:https://blog.csdn.net/t_1000poke/article/details/131928448