1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import md5 from 'js-md5'
- const {
- SM4
- } = require('gm-crypto')
- export function encryptAndSign(appKey, appSecret, privateKey, content, crypt) {
- try {
- // 签名 appKey + appSecret + timestamp
- let timestamp = Date.now(); //时间戳
- let str = appKey + appSecret + timestamp
- const sign = md5(str);
- // console.log("签名结果:", sign);
- //加密
- let key = ""
- for (let i = 0; i < privateKey.length; i++) {
- key += privateKey.charCodeAt(i).toString(16);
- }
- let data = {
- sign,
- timestamp
- }
- if (crypt == "decrypt") {
- // 对数据进行解密 decrypt - 解密方法
- // var decrypted = SM4.decryptData_ECB(content)
- data.decrypted = SM4.decrypt(content, key, {
- inputEncoding: 'hex',
- outputEncoding: 'utf8'
- })
- // console.log("内容解密结果:" + data.decrypted);
- } else {
- // 对数据进行加密 encrypt - 加密方法
- data.encrypted = SM4.encrypt(content, key, {
- inputEncoding: 'utf8',
- outputEncoding: 'hex'
- })
- // console.log("内容加密结果:" + data.encrypted);
- }
- return data
- } catch (error) {
- return null
- }
- }
- module.exports = {
- encryptAndSign,
- };
|