AES双向加密2(JavaScript)

有时候 JS 页面需要使用双向加密技术,那么此篇介绍的 JS 端的 AES便是一点点小福音啦。

一、简介

       上篇介绍了使用 Java 代码对 AES 这种对称的双向加密技术的具体实现,此篇文章便讲解下 JS 页面的 AES 双向加密技术的实现。

       其实在有些场景下,我们需要在前端进行数据的加密和解密,并且有时候会需要和后端进行一些些交互,由于 JavaScript 若类型语言的特性存在,所以经常会出现前后台加密解密后出现数据有差的情况,后来查阅后发现,其实可以使用 CryptoJS 来实现 JS 的 AES 双向加密, easy 啦。

二、实现

       其实很简单,我们只需要引入 CryptoJS 文件,然后调用其中方法即可,JS 文件点此 GitHub 地址获取。

       加密代码:

1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CryptoJS.AES.encrypt(word,key).toString();```<p>&nbsp; &nbsp; &nbsp; &nbsp;解密代码:</p>

      CryptoJS.AES.decrypt(word,key).toString(CryptoJS.enc.Utf8);<p>&nbsp; &nbsp; &nbsp; 其中,work 是你加密的数据,key 是你的秘钥。另外,你也可以点击此<a href="http://encode.chahuo.com/" target="_blank"><strong>链接</strong></a>在线验证 AES 加密。</p><h2>三、神来之笔<br/></h2><p>&nbsp; &nbsp; &nbsp; &nbsp;还有一种是稍复杂一点的,就是除了需要的秘钥之外,还有一个偏移量(iv)。</p><p>&nbsp; &nbsp; &nbsp; &nbsp;老规矩,需要的 JS 文件点此 <a href="https://github.com/goldenJet/AES-Java-JavaScript/blob/master/src/main/resources/static/js/aes_key_iv.js" target="_blank"><strong>GitHub </strong></a>地址获取。</p><p>&nbsp; &nbsp; &nbsp; &nbsp; 代码如下:<br/></p>
     var key = CryptoJS.enc.Utf8.parse(“十六位十六进制数作为秘钥”);  
    var iv  = CryptoJS.enc.Utf8.parse('十六位十六进制数作为秘钥偏移量');  
    
    // 加密方法
    function Encrypt(word){
        srcs = CryptoJS.enc.Utf8.parse(word);            
        var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});            
        return encrypted.ciphertext.toString().toUpperCase();
    }    
    
    // 解密方法    
    function Decrypt(word){  
        var encryptedHexStr = CryptoJS.enc.Hex.parse(word);            
        var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);            
        var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});            var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); 
        return decryptedStr.toString();
    }```

      最后,也提供一个可以在线校验的地址

四、小结

       总结就是,数据都是宝贝,数据都是争夺的资源,数据的加密也是有所必要的(虽然本文介绍的加密技术较为一般,但是能满足一般需求)。

       有些大篇幅的详细解释就不贴在此文中了,可以点此链接查看与钻研。


------ 本文结束 感谢阅读 ------
0%