1.下载国密包
npm i sm-crypto
2.获取后端的公钥注sm-crypto使用BC库加解密前端密钥与后端密钥是两队,非常规的base64密钥
前端公钥需要在前面加04占位否则无法解密
// 前端公钥
const publicKey ='0453bac6d2499e427529b3fcd213c33fed87a596d27c52334d457c222c729727925bae7bd7937b2dee449303faf69f128ea7530994d7a9e1272e14e6efef5437ca';
// 前端私钥
const privateKey ='009c2d9397afd38f5fe46d85611f55ebb8118c3b148d51fe8cc26a509215d49a33'
// 后端公钥
const publicKey ='MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEq+OqrQd71xbWD50ks7zfikU7ec64O8fp0d6yuEbadmURoZl4P07I1aEm4bjGvxmP6XP65tqNJWgTDomLhvrpUQ==';
// 后端私钥
const privateKey ='MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgn1ABWedtUoujWXCCwMfKnCXLgj1riMWf/S2SB6xodZKgCgYIKoEcz1UBgi2hRANCAASr46qtB3vXFtYPnSSzvN+KRTt5zrg7x+nR3rK4Rtp2ZRGhmXg/TsjVoSbhuMa/GY/pc/rm2o0laBMOiYuG+ulR'
java 密钥生成方式
SM2 sm2 = SmUtil.sm2();
String privateKey = sm2.getPrivateKeyBase64(); // 私钥
String publicKey