对看准网加密的内容解密(续前一节)

一.前言

通过前一节内容,我们可以拿到访问接口的载荷参数(加密过),如果没有印象,可以重温一遍上一节内容。

本次目标是对返回的加密内容进行解密!

二.打断点调试

从哪里打断点是一个问题,我的解决方法是继续跟栈。从上一节上讲到的a函数往下继续走,看看在哪会出现公司信息加密后的内容。

下图可以看到r.data就是要解密的数据,继续往下跟,看看它是怎么进行解密的!

后面要慢慢跟,因外解密内容快出来了。

这时候可以关注e变量,因为t.data值传给了e。

跟到这里就看见解密操作了。

三.对解密操作进行分析

通过下面的传参可知,e是加密的公司信息,t是载荷里面的kiv参数,这就是AES加密!拿到密钥才能进行解密!!

现在进入到n = c(e,t.iv)看看这个函数里面怎么解密。

这和上一节的加密方式一样!!可以用上一节的部分代码!!

四.JS代码

const CryptoJS = require("crypto-js");

var s = null;
function u() {
            return s || (s = function() {
                var e, t, n, r, i = null;
                return i || (t = new RegExp("\\u200c","g"),
                n = new RegExp("\\u200d","g"),
                r = new RegExp(".{8}","g"),
                e = "".replace(r, (function(e) {
                    return String.fromCharCode(parseInt(e.replace(t, 1).replace(n, 0), 2))
                }
                )),
                e = "G$$QawckGfaLB97r",
                i = {
                    key: CryptoJS.enc.Utf8.parse(e),
                    mode: CryptoJS.mode.CBC,
                    pad: CryptoJS.pad.Pkcs7
                }),
                i
            }()),
            s
        };

function c(e, t) {
            void 0 === e && (e = ""),
            void 0 === t && (t = "");
            var n = u()
              , r = CryptoJS.AES.decrypt(e.toString(), n.key, {
                iv: CryptoJS.enc.Utf8.parse(t),
                mode: n.mode,
                padding: n.pad
            });
            return r = r.toString(CryptoJS.enc.Utf8)
        };
var e = '这里放被加密后的数据';
var t = '放载荷kiv数据';
var datea = c(e,t);
console.log(datea);



五.总结

通过这个网站的练习,可以更好的理解AES加解密。诸君共勉。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值