123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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 "";
- }
- }
|