1.介绍:项目中会有y一些敏感请求的参数,比如用户的登陆信息,还有注册信息就应该对参数进行加密,否则很容易被黑客盗取
// 安装 npm install crypto-js // utils新建一个js文件,内容如下 export default { // 加密 encrypt (word, keyStr) { if (!word) return // 没有传递秘钥就使用默认的秘钥,秘钥的数量不能低于16位字符或者数字组成的 keyStr = keyStr || ‘hanxiaojinggvage‘ // 如果要加密的参数是对象类型,需要转换成字符串 if (typeof word === ‘object‘) { word = JSON.stringify(word) } // 字符串类型的秘钥或者参数必须先pase以下 const key = CryptoJS.enc.Utf8.parse(keyStr) const srcs = CryptoJS.enc.Utf8.parse(word) // 开始加密,第一个参数是要加密的参数,第二个参数是加密的秘钥,第三个参数是加密配置 const encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) // 由于CryptoJS生成的密文是一个对象,转为字符串才是后端需要的格式 return encrypted.toString() }, // 解密 decrypt (word, keyStr) { if (!word) return keyStr = keyStr || ‘hanxiaojinggvage‘ const key = CryptoJS.enc.Utf8.parse(keyStr) // 开始解密 const decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) // 如果是对象类型的参数,那么就转成对象,否则原样返回 try { return JSON.parse(CryptoJS.enc.Utf8.stringify(decrypt).toString()) } catch (error) { return CryptoJS.enc.Utf8.stringify(decrypt).toString() } } }
原文:https://www.cnblogs.com/zxuedong/p/12918710.html