Python pycrypto模块:为什么simplejson可以';t转储加密字符串?
它显示Unicode错误:Python pycrypto模块:为什么simplejson可以';t转储加密字符串?,python,pycrypto,Python,Pycrypto,它显示Unicode错误:'utf8'编解码器无法解码位置0:意外代码字节处的字节0x82 以下是代码: 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))
'utf8'编解码器无法解码位置0:意外代码字节处的字节0x82
以下是代码:
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))
如何避免这个错误
提前谢谢 密码通常生成不可打印的二进制数据。json不可能转储不可打印的字符 一种解决方案是在json转储之前使用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。是的,就是这样!谢谢!