前端加密(crypto.js的用法)

今天对项目的登陆做优化的时候,为了防暴力破解,要对账号密码等进行加密,后台小哥向我推荐了这个crypto.js,下面总结一下用法。
1.新建一个js文件,封装加密方法

//首先声明两个变量,加密的时候要用到,要和后台沟通,保持一致 const AES_KEY = '0D7FB71E8EC31E97'; const IV = 'TRYTOCN394402133'; function encrypt(params) { var key = CryptoJS.enc.Utf8.parse(AES_KEY); var iv = CryptoJS.enc.Utf8.parse(IV); var jsonData = https://www.it610.com/article/JSON.stringify(params); //下面的data参数要求是一个字符串,第一次用的时候我直接传递的是一个对象,出现了错误,要转换成字符串 var data = CryptoJS.enc.Utf8.parse(jsonData); var encrypted = CryptoJS.AES.encrypt(data, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }).toString(); return encrypted; }然后就可以使用了,比如要加密的表单是下面的格式:var params = {"txtValid":"1234", "txtPwd":"admin", "txtName":"admin", "timestamp":"123456789" }; encrypt(params)//YLi/+YY1Ojd14ybMu6j68OZhO4HuDHAkE/iYEtqLly/RS3oIvxjca4IGUp8wM6MaxCj2ju7pMg20OGhWrl+SsIkg1CYR6p29FA2OJJLKNUY=

【前端加密(crypto.js的用法)】解密的话也很简单,用下面的方法:
function decrypt(params) { //解密 var key = CryptoJS.enc.Utf8.parse(AES_KEY); var iv = CryptoJS.enc.Utf8.parse(IV); var decrypt = CryptoJS.AES.decrypt(params, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }).toString(CryptoJS.enc.Utf8); return decrypt; }

然后因为页面的请求可以看到js源码,所以对这个js文件进行了混淆加密,这个很简单,百度一下有很多转换工具。

    推荐阅读