java生成sm2使用hutool生成公钥私钥

首先引入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还有很多强大的工具类,方便程序员们的调用

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/f8fb527607.html