JS+AES解密(CBC模式、输出HEX)

这段代码展示了如何使用CryptoJS库进行AES解密操作。首先通过getMqttMsgService和getAesKeyService获取解密所需的key和iv,然后进行base64解码和UTF-8解析。接着,对需要解密的密码进行AES解密,最后得到解密后的字符串。
       if (tokenMsgs) {
            const response = await getMqttMsgService();
            let mqttMsg = response.data.msg;
            state.mqttconfigs = mqttMsg;
            const aesKeyResData = (await getAesKeyService()).data.msg.part1; //请求key(base64加密后的)
            const ivResData = (await getAesKeyService()).data.msg.part2; //请求iv(base64加密后的)
            let mykey = decodeURIComponent(escape(window.atob((aesKeyResData).replace(/-/g, "+").replace(/_/g, "/")))); //base64解码的key
            let key = CryptoJS.enc.Utf8.parse(mykey) //utf-8
            const myiv = decodeURIComponent(escape(window.atob((ivResData).replace(/-/g, "+").replace(/_/g, "/")))) //base64解码的iv
            var iiv = CryptoJS.enc.Utf8.parse(myiv) //utf-8
            let text = mqttMsg.para2 //需要ase解码的password
            let encryptedHexStr = CryptoJS.enc.Hex.parse(text)//指定HEx
            let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr)
                //AES解密
            let decrypt = CryptoJS.AES.decrypt(srcs, key, {
                iv: iiv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.ZeroPadding
            })
            let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8)
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值