|
@@ -0,0 +1,45 @@
|
|
|
+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)
|
|
|
+ // 解密后类型转换
|
|
|
+ const objData = JSON.parse(doDecrypt)
|
|
|
+ return objData
|
|
|
+
|
|
|
+}
|