1.安装依赖
npm install --save sm-crypto
2.使用方法
新建js文件 导出加解密方法 直接调用即可
//sm2加密
export function doEncrypt(msgString) {
let msg = msgString
if (typeof msgString !== 'string') {
msg = JSON.stringify(msgString)
}
let sm2 = require('sm-crypto').sm2
let Base64 = require('js-base64').Base64
// 1 - C1C3C2; 0 - C1C2C3; 默认为1
let cipherMode = 1
let publicKey2 = '你的公钥'
// 加密结果
let encryptData = sm2.doEncrypt(msg, publicKey2, cipherMode)
//Base64编码 自行选择是否使用
//let baseEncode = Base64.encode(encryptData)
// 加密后的密文前需要添加04,后端才能正常解密 (不添加04,后端处理也可以)
let encrypt = '04' + encryptData
return encrypt
}
// 解密
export function doDecryptStr(enStr) {
let msg = enStr
if (typeof enStr !== 'string') {
msg = JSON.stringify(enStr)
}
let sm2 = require('sm-crypto').sm2
// 1 - C1C3C2; 0 - C1C2C3; 默认为1
let cipherMode = 1
let privateKey1 = '你的私钥'
let enval = enStr.substring(2)
// 解密结果
let doDecrypt = sm2.doDecrypt(enval , privateKey1, cipherMode)
// 解密后类型转换
let objData = JSON.parse(doDecrypt)
return objData
}