import
requests
import
json
import
time
import
hashlib
from
Crypto.
Hash
import
SHA
from
Crypto.Signature
import
pkcs1_15
from
Crypto.PublicKey
import
RSA
import
base64
pey
=
'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMNGABIfN+iron2hbwB7mLK1Dm05V1qLZBILTDj7dypr+GJzQ9fk0V7gIIchpFG7pDQEXMbb2nj8VkNAIIDBaw7UY1h9n+sCBT+Xzz6BB2UxLBBMQVwOwv55tJkZ2YBcHFQDGz51HjxAonKJdHwGpjIp7bwdx375gybn2ic4qNuFAgMBAAECgYEAmcha7eqgASCKCx5DaMHtc2+bOPFblfcIjB1Rnd6L7mCxb/cOisutB2bCtykLW0LHAiAdYI5r87Ply3iJIF0yjU35I8aieDVmeaQXXQfpisimXLOmz6p4VlBzAkz493oXPEH81cHqbwnFkiFE3VVtHbCNoZqXlFWthIdae2kpjlECQQDyCMl09eyDBNGuzg1r4tAQ4CeZe7aCkEFwK2at76Raqz9NKrynBiZHsKLU3JedRm2eZ7JimUhsuKbbkS/mcxBrAkEAzop7/PyddSXGDFDECyuXtuEKyzzUvdGiyNmOexhSwTmTZ7QdQqe5p382yCQcY8RXxZ6W9CLjuukfa9I6Tcz/zwJAQbjpG318D8fLOHBzbIxWe36iwia51JJfcpoWc7zTIFvIAKhOOfyNgIISdULBWM+7DHyUD/oXlI4/oPe3zhgIqQJAQd3gFJnrDQTy19KZ8oYAaA30h0PrBG3qX+shiRgErCJUY+oIus0KY+Qp8EGz3A0tgJRGx6you17E6nmspksN+QJBAKhaBGeHqs0+Z5wtFcunuqc6hV7WlhBYCe5YSxBNSiaohXDr6nQwjiOY22Q3m8aInp9KS+lDwW0o4C58VARKyo8='
url
=
'https://api.langshiyu.com/user/v2/account/login'
def
md5(pwd_str):
md5_obj
=
hashlib.md5()
md5_obj.update(pwd_str.encode(
'utf-8'
))
return
md5_obj.hexdigest()
def
times():
return
str
(
int
(time.time()))
def
sign(content, private_key):
private_key_value
=
base64.b64decode(private_key)
key
=
RSA.import_key(private_key_value)
hash_value
=
SHA.new(content.encode(
'utf-8'
))
k
=
1024
em_len
=
k
/
/
4
h_len
=
20
t_len
=
3
s_len
=
em_len
-
h_len
-
t_len
-
1
signature_value
=
pkcs1_15.new(key).sign(hash_value)[:s_len]
return
base64.b64encode(signature_value).decode()
def
login(mobile, param):
params
=
{
"password"
: md5(param),
"os"
:
"android"
,
"mobile"
: mobile,
"version"
:
"2.2.3"
,
}
return
params
def
jiaparams(params):
params_json
=
json.dumps(params,separators
=
(
','
,
':'
))
print
(
"json转成功:"
,params_json)
data
=
base64.b64encode(params_json.encode(
'utf-8'
)).decode(
'utf-8'
)
print
(
"data成功:"
,data)
signstr
=
f
"data={data}×tamp={times()}"
print
(
"时间戳:"
,times())
print
(
"拼接成功"
,signstr)
signss
=
sign(signstr, pey)
print
(
"sign成功"
,signss)
result
=
{}
result[
'data'
]
=
data
result[
'sign'
]
=
signss
result[
'timestamp'
]
=
times()
return
result
mobile
=
input
(
"请输入16位手机号:"
)
parem
=
input
(
"请输入密码:"
)
params
=
login(mobile,parem)
paramss
=
jiaparams(params)
print
(
"发包内容:"
,paramss)
fb
=
requests.post(url, paramss)
print
(
"结果:"
,fb.text)bjsdm