网页爬虫 - python 模拟登陆电信网上营业厅时,遭遇 密码被js 加密,求助
本文介绍了网页爬虫 - python 模拟登陆电信网上营业厅时,遭遇 密码被js 加密,求助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
当我输完密码直接点登录按钮时 ,fiddler跳出的一个数据包 就显示我的密码被加密了(所以很疑惑 怎么加密的啊) 于是就一直往前搜 ,发现 载入登录页时 有个奇怪的请求点进去看 里面应该就是加密的js算法脚本。
解决方案
一个公司穷疯了就这样: 买不起一年百八十甚至免费的SSL证书,只能在提交表单的时候搞一个的AES加密,假装安全。
关键内容在这个JS里面:
http://login.189.cn/bundles/j...
重新排版关键区域:
$.fn.aesEncrypt = function(n) {
var t = CryptoJS.MD5("login.189.cn"),
i = CryptoJS.enc.Utf8.parse(t),
r = CryptoJS.enc.Utf8.parse("1234567812345678"),
u = CryptoJS.AES.encrypt(n, i, {
iv: r
});
return u + ""
};
$.fn.aesDecrypt = function(n) {
var t = CryptoJS.MD5("login.189.cn"),
i = CryptoJS.enc.Utf8.parse(t),
r = CryptoJS.enc.Utf8.parse("1234567812345678");
return CryptoJS.AES.decrypt(n, i, {
iv: r
}).toString(CryptoJS.enc.Utf8)
};
那么使用Javascript加密的步骤就是这样的:
// 先加载CryptoJS库 或者直接在189那个登录页面打开浏览器开发者模式的Console执行
d = CryptoJS.AES.encrypt('密码原文',
CryptoJS.enc.Utf8.parse(CryptoJS.MD5("login.189.cn")), {
iv: CryptoJS.enc.Utf8.parse("1234567812345678")
});
alert(d + "");
// 这时就会弹出加密结果
目测是AES-128-CBC加密方式
这篇关于网页爬虫 - python 模拟登陆电信网上营业厅时,遭遇 密码被js 加密,求助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文