网页爬虫 - python 模拟登陆电信网上营业厅时,遭遇 密码被js 加密,求助

查看:261
本文介绍了网页爬虫 - 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆