JS加解密之DES

 

demo

<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script>
<script>

    alert(desDecrypt(desEncrypt("yvioo","wa1234535"),"wa1234535"))

    /**
     * 加密字符串
     * @param str  要加密的字符串
     * @param key  秘钥 必须大于八位
     * @returns {string}
     */
    function desEncrypt(str, key) {
        var APIFMS;
        try {
            var keyHex_encrypt = CryptoJS.enc.Utf8.parse(key);
            var encrypted = CryptoJS.DES.encrypt(str, keyHex_encrypt, {
                mode: CryptoJS.mode.ECB,
                padding: CryptoJS.pad.Pkcs7
            });
            APIFMS = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
        } catch (err) {
            console.log('des 加密 -------------------------');
            console.log(err);
        }
        return APIFMS;
    }

    /**
     * 解密字符串
     * @param str 要解密的字符串
     * @param key  秘钥 必须大于八位
     * @returns {string}
     */
    function desDecrypt(str, key) {
        var result_value;
        try {
            var keyHex_decrypt = CryptoJS.enc.Utf8.parse(key);
            var decrypted = CryptoJS.DES.decrypt({
                ciphertext: CryptoJS.enc.Base64.parse(str)
            }, keyHex_decrypt, {
                mode: CryptoJS.mode.ECB,
                padding: CryptoJS.pad.Pkcs7
            });
            result_value = decrypted.toString(CryptoJS.enc.Utf8);
        } catch (err) {
            console.log('des 解密 ------------------------- ');
            console.log(err);
            console.log("解密前数据:" + str);
        }
        return result_value;
    }
</script>

 

如果解密出现异常:Error: Malformed UTF-8 data

看下是不是因为密文含有换行符\r\n  如果有要把这种去掉

 

str = str.toString().replace(/\r|\n/ig, "");

 

 

 

JAVA加解密之DES 参考:https://www.cnblogs.com/pxblog/p/13813117.html

posted @ 2022-10-21 14:57  yvioo  阅读(1127)  评论(0编辑  收藏  举报