遇到了一个使用JSEncrypt(https://github.com/travist/jsencrypt)的登录页面,抓包发现每次加密的结果都不同,一开始认为是JSEncrypt使用了RSA+AES的算法,但前端代码没有找到AES的痕迹,github上的项目也明确说了是RSA加密,没有提到别的。
尝试了很多种方法无奈直接搜索了“RSA每次加密结果不一样”,发现了这样这么一篇文章:为什么RSA公钥每次加密得到的结果都不一样?
上面提到OpenSSL和Python进行RSA加密发现每次加密的结果不同,而JSEncrypt可以与openssl结合工作。
试验了一下重复使用上次的密文提交登录,成功。这样的话对于密码爆破应该就不是什么问题了。
暂时收工,下次再看看怎么用。