1 Star 0 Fork 0

Sync.Nep / djc_helper

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
sign.py 876 Bytes
一键复制 编辑 原始数据 按行查看 历史
风之凌殇 提交于 2021-12-15 00:32 . ci: black format
import time
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA
from data_struct import AESCipher
init_token_value = 5381
def getACSRFTokenForAMS(skey):
skeyBytes = skey.encode()
token = init_token_value
for byte in skeyBytes:
token += byte + (token << 5 & 0x7FFFFFFF)
return token & 0x7FFFFFFF
# AES/ECB/PKCS5Padding
def getDjcSignParams(aes_key, rsa_public_key_file, qq_number, sDeviceID, appVersion):
nowMillSecond = getMillSecondsUnix()
dataToSign = f"{qq_number}+{sDeviceID}+{nowMillSecond}+{appVersion}"
# aes
encrypted = AESCipher(aes_key).encrypt(dataToSign)
# rsa
rasPublicKey = RSA.import_key(open(rsa_public_key_file, "rb").read())
encrypted = PKCS1_v1_5.new(rasPublicKey).encrypt(encrypted)
return encrypted.hex()
def getMillSecondsUnix():
return int(time.time() * 1000.0)
1
https://gitee.com/a915646637/djc_helper.git
git@gitee.com:a915646637/djc_helper.git
a915646637
djc_helper
djc_helper
master

搜索帮助