Frage

It shows UnicodeError: 'utf8' codec can't decode byte 0x82 in position 0: unexpected code byte

Here is code:

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

How to avoid this error?

Thanks in advance!

War es hilfreich?

Lösung

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top