3

それは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))

このエラーを回避するにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

5

The Cipher usually generates non-printable binary data. It is not possible for json to dump non-printable characters.

One solution could be to use base64 encoding prior to json dump:

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

Similarly, before decryption, you'll have to decode base64 as well.

于 2012-01-14T16:17:25.923 に答える