前言
主要是报了自考在这个小程序上面做题,就研究了一下这个接口本文仅供学习交流使用,请勿随意传播。
如有侵犯你的权益及时联系我删除。
一、抓包分析
打开小程序,打开devtools 工具,这里就不啰嗦,直接上过程。
点击红框进入 。
一般的加解密的关键字都是decrypt,encrypt ,反正各种关键字使劲搜就完事了 。
我这里搜的是解密的关键词 decrypt 。。找到好多处。下断点测试 。
此处下断点 。
可以看到加密方式是AES加密的 。其实他这里用到的是 CryptoJS 的前端解密的 。加密方式是 CBC-128 。
二、结束
CryptoJS 是一个三方的JS库。写一段代码证明一下。
function cryptoDecrypt_(e) {
var t = n.crpytoConfig.AES_IV
, o = n.crpytoConfig.AES_KEY
, c = e.replace(/\_/g, "/").replace(/\-/g, "+")
, a = CryptoJS.enc.Utf8.parse(o)
, u = CryptoJS.enc.Utf8.parse(t)
, p = CryptoJS.enc.Base64.parse(c)
, f = CryptoJS.enc.Base64.stringify(p);
return CryptoJS.AES.decrypt(f, a, {
iv: u,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8).toString()
}
console.log(cryptoDecrypt_(str));
得到了明文
加密的方式也是一样的。整体来说还是比较简单的。