小程序使用CryptoJS
时间: 2023-11-10 20:48:12 浏览: 163
在小程序中使用CryptoJS,首先需要通过npm安装crypto-js包。可以使用以下命令进行安装:npm install crypto-js。然后,在小程序的代码中引入CryptoJS,可以使用以下代码进行引入:import CryptoJS from 'crypto-js'。接下来,你可以将加密和解密的方法封装在一个公共的js文件中,方便每次http请求时调用。例如,你可以在公共js文件中定义AES_EN和AES_DE函数来进行加密和解密。具体代码如下:
const aecConfig = {
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}
// 加密方法
function AES_EN(text, key, iv) {
key = CryptoJS.enc.Utf8.parse(key)
iv = CryptoJS.enc.Utf8.parse(iv)
const encrypted = CryptoJS.AES.encrypt(text, key, { iv, ...aecConfig })
return encrypted.ciphertext.toString()
}
// 解密方法
function AES_DE(text, key, iv) {
key = CryptoJS.enc.Utf8.parse(key)
iv = CryptoJS.enc.Utf8.parse(iv)
text = CryptoJS.enc.Hex.parse(text)
const decrypt = CryptoJS.AES.decrypt({ ciphertext: text }, key, { iv, ...aecConfig })
const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8)
return decryptedStr.toString()
}
export { AES_EN, AES_DE }
然后,在使用CryptoJS的地方,你可以直接调用这些方法。例如,你可以在小程序的请求中将参数进行加密,然后在接收到返回结果后进行解密。具体代码如下:
const crypto = require('../crypto/index.js')
let params = { a: 1, b: 2 }
let data = JSON.stringify(params)
// 参数加密
data = crypto.AES_EN(data, 'key(加密的key)', 'xxxxxxx(AES加密偏移量)')
wx.request({
url: 'test.php', //仅为示例,并非真实的接口地址
data,
success (res) {
// 返回结果解密
let obj = JSON.parse(crypto.AES_DE(res.data, 'key(解密的key)', 'xxxxxxx(AES解密偏移量)'))
console.log(obj)
}
})
这样,你就可以在小程序中使用CryptoJS进行加密和解密了。
阅读全文