Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pycrypto模块:为什么simplejson可以';t转储加密字符串?_Python_Pycrypto - Fatal编程技术网

Python pycrypto模块:为什么simplejson可以';t转储加密字符串?

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))

它显示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))
如何避免这个错误


提前谢谢

密码通常生成不可打印的二进制数据。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。

是的,就是这样!谢谢!