[Python] 纯文本查看 复制代码
def encrypt(params, key, public_key=PUBLIC_KEY):
data = json.dumps(params).encode('utf-8')
key = key.encode('utf-8')
# 生成 AES 密码器,使用 ECB 模式
aes_cipher = AES.new(key, AES.MODE_ECB)
padded_data = pad(data, AES.block_size)
encrypted_data = aes_cipher.encrypt(padded_data)
encrypted_data = base64.b64encode(encrypted_data).decode('utf-8')
key = base64.b64encode(key)
public_key = RSA.import_key(public_key.encode('utf-8'))
rsa_cipher = PKCS1_OAEP.new(public_key)
encrypted_key = rsa_cipher.encrypt(key)
encrypted_key = base64.b64encode(encrypted_key).decode('utf-8')
return encrypted_data, encrypted_key
def get_models():
url = 'http://127.0.0.1:9999/models'
aeskey = "".join(random.sample(string.ascii_letters + string.digits, 32))
params = {
"timestamp": int(time.time())
}
encrypted_data, encrypted_key = encrypt(params, aeskey)
payload = {
"data": encrypted_data,
}
headers = {
"key": encrypted_key
}
res = requests.get(url, params=payload, headers=headers)
print(res.status_code)
if res.status_code != 200:
print(res.text)
else:
print(res.json())
变量名 | 类 型 | 静态 | 数组 | 备 注 |
公钥 | 文本型 | | |
aeskey | 文本型 | | |
params | 文本型 | | |
数据 | 字节集 | | |
填充后的数据 | 字节集 | | |
encrypted_data | 字节集 | | |
encrypted_key | 字节集 | | |
encrypted_data_base64 | 文本型 | | |
encrypted_key_base64 | 文本型 | | |
url | 文本型 | | |
headers | 文本型 | | |
响应 | 字节集 | | |
对称密钥 | 加解密_对称加密 | | |
RSA | 加解密_非对称加密 | | |
公钥 = "替换为你的PUBLIC_KEY内容"
aeskey =
生成随机密钥 ()调试输出 ("AES密钥:", aeskey
) params = "
{” + #引号 +
“timestamp” + #引号 +
“:” + 到文本(取现行时间戳()) +
“}"
数据 = 到字节集 (params)
调试输出 ("原始参数:", params)
填充后的数据 = PKCS7填充 (数据, 16)
对称密钥.创建 ( #算法_AES, 到字节集 (aeskey), #填充方式_PKCS7, , #对称加密模式_ECB )
encrypted_data = 对称密钥.加密 (填充后的数据)
encrypted_data_base64 = 编码_BASE64编码 (encrypted_data)
调试输出 ("AES加密结果:", encrypted_data_base64)
RSA.导入公钥文本 (公钥)
encrypted_key = RSA.加密 (编码_BASE64编码 (到字节集 (aeskey)), #填充方式_PKCS1_OAEP )
encrypted_key_base64 = 编码_BASE64编码 (encrypted_key)
调试输出 ("RSA加密密钥:", encrypted_key_base64)
url = "http://127.0.0.1:9999/models?data=" + encrypted_data_base64
headers = "key: " + encrypted_key_base64
响应 = 网页_访问 (url, 0, , , , headers)
调试输出 ("响应状态码:", 取响应状态码 (响应))
调试输出 ("响应内容:", 到文本 (响应))
变量名 | 类 型 | 静态 | 数组 | 备 注 |
字符集 | 文本型 | | |
i | 整数型 | | |
位置 | 整数型 | | |
字符集 = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”
置随机数种子 ()
计次循环首 (32, i)
位置 = 取随机数 (1, 取文本长度 (字符集))
结果 = 结果 + 取文本中间 (字符集, 位置, 1)
计次循环尾 ()
返回 结果
变量名 | 类 型 | 静态 | 数组 | 备 注 |
需要填充 | 整数型 | | |
填充字节 | 字节集 | | |
需要填充 = 块大小 ��� (取字节集长度 (原始数据) % 块大小)
如果真 (需要填充 = 0)
需要填充 = 块大小
填充字节 = 取重复字节集 (需要填充, 到字节 (需要填充))
返回 原始数据 + 填充字节
返回 到长整数 (取时间间隔 (取现行时间 (), 到时间 ("1970-01-01 08:00:00"), #秒 ))