【发布时间】:2017-12-07 13:54:52
【问题描述】:
我正在尝试使用 python2 版本 2.7.13 从this post(与 python3 版本 3.5.3 完美配合)中的答案运行代码:
def myencode_str(ori_str, key):
enc = []
for i in range(len(ori_str)):
key_c = key[i % len(key)]
enc_c = (ord(ori_str[i]) + ord(key_c)) % 256
enc.append(enc_c)
return (base64.urlsafe_b64encode(bytes(enc))).decode("utf-8")
我正在使用以下解码 fn:
def mydecode(enc_str, key):
dec = []
enc_str = base64.urlsafe_b64decode(enc_str)
for i in range(len(enc_str)):
key_c = key[i % len(key)]
dec_c = chr((256 + enc_str[i] - ord(key_c)) % 256)
dec.append(dec_c)
return "".join(dec)
但我收到以下错误消息:
dec_c = chr((256 + enc_str[i] - ord(key_c)) % 256)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我尝试了以下更改的代码,但它们也不起作用:
dec_c = chr((256 + int(enc_str[i]) - int(ord(key_c))) % 256)
ValueError: invalid literal for int() with base 10: '\xc3'
问题出在哪里,如何解决?
【问题讨论】:
标签: python python-3.x python-2.7 encoding