美文网首页
前端加密:crypto.js的用法

前端加密:crypto.js的用法

作者: 梁风有意 | 来源:发表于2018-09-27 15:04 被阅读0次

今天对项目的登陆做优化的时候,为了防暴力破解,要对账号密码等进行加密,后台小哥向我推荐了这个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 = 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=

解密的话也很简单,用下面的方法:

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文件进行了混淆加密,这个很简单,百度一下有很多转换工具。

相关文章

网友评论

      本文标题:前端加密:crypto.js的用法

      本文链接:https://www.haomeiwen.com/subject/qrmloftx.html