现在时间是:
当前位置:首 页 >> 数据采集>> 文章列表

Requests 获取WebQQ登录hash值

作者:   发布时间:2016-02-16 16:16:53   浏览次数:1321

 



import hashlib

# encoding: utf-8
__author__ = 'yeayee.com' # 增加注释,可随意Fork、Copy


class EncryptPsw():
def __init__(self):
pass

def _user_to_bin(self, user):
return self._hex_to_bin(hex(int(user))[2:].zfill(16))

def encrypt(self, user, psw, verify_code):
bin_user = self._user_to_bin(user)
psw_1 = self._md5_encrypt_1(psw) # 对密码进行MD5加密
psw_1 = self._hex_to_bin(psw_1)
psw_2 = self._md5_encrypt_2(psw_1, bin_user)
psw_3 = self._md5_encrypt_3(psw_2, verify_code)

return psw_3

@staticmethod # 该装饰器定义一个静态方法,PASS
def _hex_to_bin(string): # 字符串转bytes数组
length = len(string)
tmp = []
for i in range(0, length, 2):
tmp.append(int("0x" + string[i:i + 2], base=16))
return bytes(tmp)

@staticmethod
def _md5_encrypt_1(psw): # 密码的第一次加密
md5 = hashlib.md5()
md5.update(psw.encode("ISO-8859-1"))
return md5.hexdigest().upper()

@staticmethod
def _md5_encrypt_2(psw, user): # 密码的第二次加密
md5 = hashlib.md5()
md5.update(psw + user)
return md5.hexdigest().upper()

@staticmethod
def _md5_encrypt_3(psw, verify_code): # 密码的第三次加密
md5 = hashlib.md5()
md5.update((psw + verify_code.upper()).encode("ISO-8859-1"))
return md5.hexdigest().upper()


def main():
a = EncryptPsw()
psw = a.encrypt("888888888", "123456", "!xyz")
# !xyz,应该是验证码
print(psw)


if __name__ == "__main__":
main()

# 运行结果: 18662D39C59D00F2261F062EE2AD5906
# 疑问:为什么不能通过构造一个网页的形式直接生成最终结果?






上一篇:没有了    下一篇:没有了

Copyright ©2018    易一网络科技|www.yeayee.com All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 版权所有 © 2005-2018 lingw.net.粤ICP备16125321号 -5