python爬虫教程post加密_python爬虫学习日记(2)--分析POST信息(MD5加密)

这次依然是以黎明大学的教务管理系统为例,因为之前我认为他的POST是很简单的,可是后来发现,他进行了加密,而且用其他的信息来加密另一个信息,所以我这次重新分析一遍,这里涉及到javascript,我都不会,但是通过百度都能查到,下面看我是怎么一步步挤牙膏的。

1.读表单

我们先来读表单的内容,选取可能被加密的

style="WIDTH:134px;HEIGHT:20px"

type="password" maxLength="25"

name="txt_pewerwedsdfsdff"

value="" οnblur="chkpwd(this)"

οnkeyup="chkpwd(this)">

name="txt_sdertfgsadscxcadsads"

style="WIDTH:134px;HEIGHT:20px"

οnblur="chkyzm(this)" οnkeyup="chkyzm(this)"

maxlength="4">

这里我们可以看到,有涉及到两个有关javascript的。

2.查资料

通过查阅资料:

onkeyup 事件会在键盘按键被松开时发生。(瞬间执行)

onblur 事件会在对象失去焦点时发生。(移出输入框点击随机位置后后执行)

我们跳到这里他涉及到的两个chkpwd()和chkyzm()

3.整理分析代码

原来的代码很乱,我给他整理了

function chkpwd(obj) {

if(obj.value!='') {

var s=md5(document.all.txt_asmcdefsddsd.value+md5(obj.value).substring(0,30).toUpperCase()+'11317').substring(0,30).toUpperCase();

document.all.dsdsdsdsdxcxdfgfg.value=s;

}

else {

document.all.dsdsdsdsdxcxdfgfg.value=obj.value;

}

}

function chkyzm(obj) {

if(obj.value!='') {

var s=md5(md5(obj.value.toUpperCase()).substring(0,30).toUpperCase()+'11317').substring(0,30).toUpperCase();

document.all.fgfggfdgtyuuyyuuckjg.value=s;

}else {

document.all.fgfggfdgtyuuyyuuckjg.value=obj.value.toUpperCase();

}

}

其实我看不懂这些代码,但是我可以查,我先从参数开始看起

把this传给obj,这里的this我们要知道他是谁

没有找到详细的回答,但我从下面的代码猜测

obj.value

这个this代替的就是传递过来的参数的那个对象本身,而这个value就是他的值。

我们再接着读代码,

toUpperCase() 方法用于把字符串转换为大写。

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

比如substring(0:30)就是取前30个字符。

这里就是繁琐的大写,取30位,还有一个就是MD5加密,用的是hash算法。

md5()这个函数可以在他导入的js看到

这里我们就不打开了,代码太长,而且MD5加密可以通过python的库函数加密。

4.尝试实现

...

你可能感兴趣的:(python爬虫教程post加密_python爬虫学习日记(2)--分析POST信息(MD5加密))