import {sm2} from 'sm-crypto' const PUBLICKEY='04404c634de4deda80486b4a331adf03448a449d980fe040540abe242ba275cc815aada6a63c63e24d4672e14360c72b1819914f49708f25498ededc2217384960' const PRIVATEKEY='ebaedbccd3f730ec1985b945f10429b468c7f3f70e66da19b8657f023e6cded4' /** * 加密 */ export function encode(msgString) { const msg = msgString if (typeof msgString !== 'string') { msg = JSON.stringify(msgString) } // 1 - C1C3C2; 0 - C1C2C3; 默认为1 const cipherMode = 1 const publicKey = PUBLICKEY // 加密结果 const encryptData = sm2.doEncrypt(msg, publicKey, cipherMode) //Base64编码 自行选择是否使用 //const baseEncode = Base64.encode(encryptData) // 加密后的密文前需要添加04,后端才能正常解密 (不添加04,后端处理也可以) const encrypt = '04' + encryptData return encrypt } /** * 解密 */ export function decode(enStr) { const msg = enStr if (typeof enStr !== 'string') { msg = JSON.stringify(enStr) } // 1 - C1C3C2; 0 - C1C2C3; 默认为1 const cipherMode = 1 const privateKey = PRIVATEKEY const enval = enStr.substring(2) // 解密结果 const doDecrypt = sm2.doDecrypt(enval, privateKey, cipherMode) // 解密后类型转换 if(doDecrypt){ return JSON.parse(doDecrypt) }else{ return ""; } }