|
本帖最后由 hmlyn 于 2024-11-19 20:57 编辑
百度和论坛找了一圈,password都是调用js方式的,我觉得它是一个aes加密,有必要用cryptoJs吗?于是自己动手分析了下,觉得这个东西确实没那么简单。定位了下,这里是调用cryptoJs的AES加密算法。
lzYW5qaXVqa ,是短密钥,直接打上断点,往下跟
跳转到了cryptojs-aes.js里来了。
我们直接扣下完整的代码保存,本地使用Vs Code来调试,方便点。
走到这里,跟进看下
这里生成一个8个字节的随机盐,难怪AES加密会动态变化。
继续跟下compute 方法看下。
继续。
使用工具,测试下加密结果:
完全是aes cbc模式。
但是为啥最终结果不一样呢,还会动态变化呢
来到这里,我们看下,它是由多个字节数组拼接成的。
f.create([1398893684, 1701076831]).concat(c).concat(b)
我们来看下,b是加密值,c是生成的随机盐值,[1398893684, 1701076831]转换成字符串的话,是Salted标识。
那么知道了整个加密过程,那么就动手翻译成易语言的。
由于密钥和iv都是动态算出来的,所以我们只需要知道盐的值,然后易语言上面也需要根据盐的值加密出一样的值即可。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|