前端js使用AES加密
我是在uniapp项目里使用,AES加密也分几种模式,我这里有CBC和ECB模式,ECB模式安全性差些但快
加密文件下载
下载好和封装引用
var CryptoJS = require("crypto-js");
/**
* AES加密
* 手机号,密码登录等需要加密
* */
function AESencryption (e){
// console.log('aes加密',e)
var key = CryptoJS.enc.Utf8.parse("zhgerXHBVaaKm8xy")
var plaintText = e;
// var key1 = CryptoJS.enc.Latin1.parse(key);//key为密钥,16位的字符串
// var iv1 = CryptoJS.enc.Latin1.parse(iv);//iv为偏移量,16位的字符串
//CBC加密
// var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {
// iv: CryptoJS.enc.Utf8.parse(key),
// mode: CryptoJS.mode.CBC,
// padding: CryptoJS.pad.Pkcs7
// })
//ECB模式
var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
})
encryptedData = encryptedData.ciphertext.toString();
console.log("加密前:"+plaintText)
console.log(encryptedData)
console.log("什么玩意",typeof encryptedData)
return encryptedData;
//CBC解密
// var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData)
// console.log("解密前hex:"+encryptedHexStr)
// var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr)
// console.log("解密前:"+encryptedBase64Str)
// var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
// iv: CryptoJS.enc.Utf8.parse(key),
// mode: CryptoJS.mode.CBC,
// padding: CryptoJS.pad.Pkcs7
// })
// var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8)
// console.log("解密后:"+decryptedStr)
//ECB解密
//var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData)
//console.log("解密前hex:"+encryptedHexStr)
//var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr)
//console.log("解密前:"+encryptedBase64Str)
//var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
// mode: CryptoJS.mode.ECB,
// padding: CryptoJS.pad.Pkcs7
//})
//var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8)