def get_encrypt_param(params):
_salt = b"\xA9\x9B\xC8\x32\x56\x35\xE3\x03"
_iterations = 2
data = []
for i in params:
data.append("{}={}".format(i, params[i]))
str_param = "&".join(data)
print(str_param)
padding = 8 - len(str_param) % 8
str_param += chr(padding) * padding
print(str_param)
hasher = MD5.new()
hasher.update(apikey.encode())
hasher.update(_salt)
result = hasher.digest()
for i in range(1, _iterations):
hasher = MD5.new()
hasher.update(result)
result = hasher.digest()
encoder = DES.new(result[:8], DES.MODE_CBC, result[8:16])
encrypted = encoder.encrypt(str_param)
encryptParam = base64.b64encode(encrypted)
return res
当我输入汉字时
^{pr2}$
ValueError:输入字符串的长度必须是8的倍数。
但输入英文字符就可以了。
请帮帮我。
我试图:for i in params:
data.append("{}={}".format(i, params[i].encode("utf-8")))
但是str_param是:mobile=b'13800138000'&name=b'\xe5\xbc\xa0\xe4\xb8\x89'&cardno=b'123456199001011233'
它是字节,其他人无法识别解密参数。在