我正在使用PyCrypto生成安全密钥哈希。我想存储一个或多个我生成的部分键。每个部分密钥的格式为
\x0f|4\xcc\x02b\xc3\xf8\xb0\xd8\xfc\xd4\x90VE\xf2
我有一个ndb StringProperty()
,我会在其中存储该信息。但是,它提出了BadValueError
说它期望UTF-8编码的字符串。我尝试使用str的.encode('uft-8')
方法,但这也引发了一个错误,告诉我它无法编码,因为定位不好。
无论如何,我的问题是,如何将该字节字符串转换为可以存储在ndb中的字符串?
答案 0 :(得分:2)
在这种情况下,不应将密钥存储为字符串或文本,而应使用存储未解释的字节字符串的BlobProperty
。
要将字节(字符串)转换为unicode,请使用方法decode
。您还需要使用保留原始二进制数据的编码,即ISO-8859-1。见ISO-8859-1 encoding and binary data preservation
unicode_key = key.decode('iso-8859-1')
bytes_key = unicode_key.encode('iso-8859-1')
考虑使用A TextProperty,因为StringProperties已编入索引。