md5加密 和拉钩网的登录

#使用requests模块
#1.登录lagou
#2.登录人人,保存个人首页

import requests
from urllib import parse
#hashlib是MD5加密的一个python内置模块
#导入hashlib模块
import hashlib
'''
python提供了一个进行hash加密的模块:hashlib
下面主要记录下其中的md5加密方式
>>> import hashlib
>>> m = hashlib.md5()
>>> m.update("Nobody inspects")
>>> m.update(" the spammish repetition")
>>> m.digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
>>> m.hexdigest()
'bb649c83dd1ea5c9d9dec9a18df0ffe9'
对以上代码的说明:
1.首先从python直接导入hashlib模块
2.调用hashlib里的md5()生成一个md5 hash对象
3.生成hash对象后,就可以用update方法对字符串进行md5加密的更新处理
4.继续调用update方法会在前面加密的基础上更新加密
5.加密后的二进制结果
6.十六进制结果
'''
# base_url = 'https://passport.lagou.com/login/login.json'
#由于地址比较复杂 并没有得出理想的结果
base_url = 'https://passport.lagou.com/login/login.html?ts=1520939889776&serviceId=lagou&service=https%253A%252F%252Fwww.lagou.com%252F&action=login&signature=CC1F0D168D38EDD43E1323BFD78E0705'
def hash(value):
    #调用hashlib中的md5()生成一个md5 hash对象
    m = hashlib.md5()
    # print(m)#<md5 HASH object @ 0x0000000002938B48>
    #用update方法对字符串进行md5加密的更新处理
    m.update(bytes(value,encoding='utf-8'))
    #加密后的十六进制结果
    sign = m.hexdigest()
    print(sign)
    #返回解密后的16进制结果
    return sign
pwd = hash('123456')
pwd_str = 'veenike' + pwd + 'veenike'
#再一次对字符串进行更新加密
pwd_str = hash(pwd_str)

data = {
    'isValidate':'true',
    'username':'18811176939',
    'password':pwd_str
}

data = parse.urlencode(data)

headers = {
    'Accept':'application/json, text/javascript, */*; q=0.01',
    'Accept-Language':'zh-CN,zh;q=0.8',
    'Connection':'keep-alive',
    'Content-Length':str(len(data)),
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0'
}

#发送请求
response = requests.post(url=base_url,data=data,headers=headers)
print(response.content.decode('utf-8'))

 

posted @ 2018-03-13 21:27  Bob__Zhang  阅读(550)  评论(0编辑  收藏  举报