JS DES CBC加解密

JS DES CBC加解密


Meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
     
        <script>        
function getResult(){  
//待加密字符串  
var str = document.getElementById("str").innerHTML;   
//加密方法            
var  enResult = encryptByDES(str,'BOTWAVEE','BOTWAVEE');  
//解密方法  
var deResult = decryptByDES(enResult,'BOTWAVEE');  
//展示结果  
document.getElementById("enStr").innerHTML = enResult;   
document.getElementById("dnStr").innerHTML = deResult;   
}  

function encryptByDES(message,key,iv) {
    var keyHex = CryptoJS.enc.Utf8.parse(key);
    var ivHex = CryptoJS.enc.Utf8.parse(iv);
    encrypted = CryptoJS.DES.encrypt(message, keyHex, {
            iv:ivHex,mode: CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7
        }
    );
    return encrypted.ciphertext.toString();
}

    //DES  CBC模式解密
    function decryptByDES(ciphertext,iv) {
        //把私钥转换成UTF - 8编码的字符串
        var keyHex = CryptoJS.enc.Utf8.parse(key);
        var ivHex = CryptoJS.enc.Utf8.parse(iv);
        var decrypted = CryptoJS.DES.decrypt({
        ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
        },keyHex,{
iv:ivHex,padding: CryptoJS.pad.Pkcs7
});
        return decrypted.toString(CryptoJS.enc.Utf8);
    }
    </script>  
</head>  
<body>  
<input type="button" value="获取加密结果与解密结果" onclick="getResult()" />  
    <table>  
        <tr>  
          <td align="left">字符串:</td>  
          <td><span id="str">admin</span></td>         
        </tr>  
        <tr>  
          <td align="left">加密结果:</td>  
          <td align="left"><label id = "enStr"></label></td>  
        </tr>  
        <tr>  
          <td align="left">解密结果: </td>  
          <td align="left"><label id = "dnStr"></label></td>  
        </tr>  
    <table>  
</body>  
</html>

js下载地址链接

https://pan.baidu.com/s/1Qx9OkpJU8WJKXklg2Yo1bA 

提取码: epxf 

更多加解密文件下载地址https://cdnjs.com/libraries/crypto-js/

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...