前端加密:crypto.js的用法

今天對(duì)項(xiàng)目的登陸做優(yōu)化的時(shí)候,為了防暴力破解,要對(duì)賬號(hào)密碼等進(jìn)行加密,后臺(tái)小哥向我推薦了這個(gè)crypto.js,下面總結(jié)一下用法。

1.新建一個(gè)js文件,封裝加密方法

//首先聲明兩個(gè)變量,加密的時(shí)候要用到,要和后臺(tái)溝通,保持一致
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參數(shù)要求是一個(gè)字符串,第一次用的時(shí)候我直接傳遞的是一個(gè)對(duì)象,出現(xiàn)了錯(cuò)誤,要轉(zhuǎn)換成字符串
        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=

解密的話也很簡(jiǎn)單,用下面的方法:

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;
    }

然后因?yàn)轫撁娴恼?qǐng)求可以看到j(luò)s源碼,所以對(duì)這個(gè)js文件進(jìn)行了混淆加密,這個(gè)很簡(jiǎn)單,百度一下有很多轉(zhuǎn)換工具。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容