CryptoJS获取密钥tip
CryptoJS获取加密密钥
网站登录包加密

在网站资源搜索AES、DES等字符,定位加密函数并下断点
1 | k.a.AES.encrypt(c()(t.data), A, { |

获取加密函数A(key)和q(iv)的值
此处密钥不是明文而是CryptoJS专有的WordArray格式

本地资源下载
npm install crypto-js
查阅资料可知,WordArray格式一般由CryptoJS.enc.Utf8.parse()方法转换原始字符串而来,由CryptoJS.enc.Utf8.stringify()方法将WordArray转换为原始字符串,那在这里使用CryptoJS.enc.Utf8.stringify()方法即可进行转换
确定WordArray格式
在CryptoJS代码中查找CryptoJS.enc.Utf8.stringify()方法,对words和sigBytes进行了解析

使用CryptoJS.enc.Utf8.parse()转换一个字符串,查看下WordArray格式
1 | var CryptoJS = require("crypto-js"); |
运行结果如下:

根据浏览器断点获取的WordArray,转换出key和iv

key:

iv:

解密明文

总结
文章并不复杂,但中间由于把脚本WordArray位置添加了双引号,导致一直无法转换成功……
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Y1Shui's blog!