def getParameter(self):
"""
????????????????
su??????sp?????
servertime?nonce?pubket???sp????
rsakv???ticket??
"""
'''base64?????'''
bytesString = self.username.encode(encoding="utf-8")
self.su = base64.b64encode(bytesString).decode('utf-8')
'''??servertime?nonce?pubket?rsakv??'''
params = {
'su': self.su,
'entry': 'openapi',
'callback': 'sinaSSOController.preloginCallBack',
'rsakt': 'mod',
'checkpin': '1',
'client': 'ssologin.js(v1.4.18)',
'_': '1499082911503'
}
parameter_resp = requests.get(self.parameter_url, params=params)
parameter = parameter_resp.text.split(',')
self.servertime = parameter[1].split(':')[1]
self.pcid = parameter[2].split(':')[1][1:-1]
self.nonce = parameter[3].split(':')[1][1:-1]
self.pubket = parameter[4].split(':')[1][1:-1]
self.rsakv = parameter[5].split(':')[1][1:-1]
'''????rsa??'''
rsa_e = '65537'
key = rsa.PublicKey(int(self.pubket, 16), int(rsa_e))
pw_string = str(self.servertime) + '\t' + str(self.nonce) + '\n' + str(self.password)
ps = pw_string.encode(encoding="utf-8")
pw_encypted = rsa.encrypt(ps, key)
passwd = binascii.b2a_hex(pw_encypted)
self.sp = passwd.decode()
评论列表
文章目录