crypto-js实现加密解密

1、DES加密

           function encryptByDESModeEBC(str,key){//str为待加密字符串,key为密匙
            var keyHex = CryptoJS.enc.Utf8.parse(key);
            var encrypted = CryptoJS.DES.encrypt(str, keyHex, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
            });
            return encrypted.ciphertext.toString();
        }

2、DES解密

              function decryptByDESModeEBC(ciphertext,key){//ciphertext为带解密字符串,key为密匙
            var keyHex = CryptoJS.enc.Utf8.parse(key);
            var decrypted = CryptoJS.DES.decrypt({
            ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
            }, keyHex, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
            });
            var result_value = decrypted.toString(CryptoJS.enc.Utf8);
            return result_value;
        }

3、AES加密

                function getAES(data){ //加密
            var key  = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';  //密钥
            var iv   = '1234567812345678';  //十六位十六进制数作为密钥偏移量
            var encrypted =getAesString(data,key,iv); //密文
            var encrypted1 =CryptoJS.enc.Utf8.parse(encrypted);
            return encrypted;
        }

                function getAesString(data,key,iv){//加密
            var key  = CryptoJS.enc.Utf8.parse(key);
            var iv   = CryptoJS.enc.Utf8.parse(iv);
            var encrypted =CryptoJS.AES.encrypt(data,key,
                {
                    iv:iv,
                    mode:CryptoJS.mode.CBC,
                    padding:CryptoJS.pad.Pkcs7
                });
            return encrypted.toString();    //返回的是base64格式的密文
        }

4、AES解密

              function getDAes(data){//解密
            var key  = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';  //密钥
            var iv   = '1234567812345678';  //十六位十六进制数作为密钥偏移量
            var decryptedStr =getDAesString(data,key,iv);
            return decryptedStr;
        }

                function getDAesString(encrypted,key,iv){//解密
            var key  = CryptoJS.enc.Utf8.parse(key);
            var iv   = CryptoJS.enc.Utf8.parse(iv);
            var decrypted =CryptoJS.AES.decrypt(encrypted,key,
                {
                    iv:iv,
                    mode:CryptoJS.mode.CBC,
                    padding:CryptoJS.pad.Pkcs7
                });
            return decrypted.toString(CryptoJS.enc.Utf8);     
        }

5、注意:js的前端加密不能与java加密代码写的代码混合使用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近公司用到RSA数据加密传输,本人也只会使用,并不知其原理,刚好今天在csdn看到一位大牛的博客写得很到位,遂搬...
    爸比好酷阅读 5,239评论 0 1
  • 作者简介 原创微信公众号郭霖 WeChat ID: guolin_blog 大家早上好,转眼假期就结束了,又到了...
    木木00阅读 4,924评论 0 9
  • 转载请注明出处:http://blog.csdn.net/chay_chan/article/details/58...
    shallwego_阅读 31,286评论 15 36
  • 仍然依在失眠夜 望天边星宿 仍然听见小提琴如泣似诉再挑逗 为何只剩一弯月 留在我的天空 这晚以后音讯隔绝 ...
    qtpifan阅读 3,940评论 0 0
  • 亲爱的、敬爱的心中的筱雅女神,自从跟着你做微商的那一天起,就坚定了我的信念,不管成功与否,一定会跟着你,永不...
    丛林小溪阅读 3,529评论 0 0