python3.6界面中如何设置uif-8_ValueError:在python3.6中输入utf8时,输入字符串的长度必须是8的倍数...

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'

它是字节,其他人无法识别解密参数。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值