它显示 UnicodeError: 'utf8' codec can't decode byte 0x82 in position 0: unexpected code byte
这是代码:
from Crypto.Cipher import AES
import simplejson as json
key = '0123456789abcdef'
mode = AES.MODE_CBC
encryptor = AES.new(key, mode)
text = '1010101010101010'
json.dumps(encryptor.encrypt(text))
如何避免此错误?
提前致谢!
答案 0 :(得分:5)
密码通常会生成不可打印的二进制数据。 json无法转储不可打印的字符。
一种解决方案可能是在json dump之前使用base64编码:
from Crypto.Cipher import AES
import simplejson as json
import base64
key = '0123456789abcdef'
mode = AES.MODE_CBC
encryptor = AES.new(key, mode)
text = '1010101010101010'
json.dumps(base64.encodestring(encryptor.encrypt(text)))
同样,在解密之前,您还必须解码base64。