from
Crypto.Cipher
import
AES
import
base64
from
Crypto.Util.Padding
import
pad, unpad
import
requests
class
Gszxjyhelper(
object
):
def
__init__(
self
):
pass
def
encrypt(
self
,plaintext):
key
=
"20180227110419WB"
.encode(
'utf-8'
)
iv
=
"ZZWBKJ_ZHIHUAWEI"
.encode(
'utf-8'
)
cipher
=
AES.new(key, AES.MODE_CBC, iv)
padded_data
=
pad(plaintext.encode(
'utf-8'
), AES.block_size)
ciphertext
=
cipher.encrypt(padded_data)
return
base64.b64encode(ciphertext).decode(
'utf-8'
)
def
login(
self
,account, password):
url
=
"https://www.gszxjy.net/api/student.index/login.html"
headers
=
{
"accept"
:
"application/json, text/plain, */*"
,
"accept-language"
:
"zh-CN,zh;q=0.9"
,
"cache-control"
:
"no-cache"
,
"content-type"
:
"application/x-www-form-urlencoded"
,
"pragma"
:
"no-cache"
,
"sec-ch-ua"
:
'"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"'
,
"sec-ch-ua-mobile"
:
"?0"
,
"sec-ch-ua-platform"
:
'"Windows"'
,
"sec-fetch-dest"
:
"empty"
,
"sec-fetch-mode"
:
"cors"
,
"sec-fetch-site"
:
"cross-site"
,
"Referer"
:
"https://www.gszxjy.net/web/index"
,
"User-Agent"
:
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
}
account_encoded
=
self
.encrypt(account)
password_encoded
=
self
.encrypt(password)
data
=
f
"account={account_encoded}&password={password_encoded}&are_code=PLS"
response
=
requests.post(url, headers
=
headers, data
=
data)
print
(f
"Status Code: {response.status_code}"
)
print
(f
"Response Text: {response.text}"
)
if
__name__
=
=
'__main__'
:
gs
=
Gszxjyhelper()
gs.login(
"17588580360"
,
"aaa123456"
)