1

我正在使用 PyCrypto 生成安全密钥哈希。我想存储我生成的一个或多个部分密钥。每个部分键的形式为

\x0f|4\xcc\x02b\xc3\xf8\xb0\xd8\xfc\xd4\x90VE\xf2

我有一个 ndb StringProperty(),我想在其中存储该信息。然而,它提出了一个BadValueError说法,它需要一个 UTF-8 编码的字符串。我尝试使用 str 的.encode('uft-8')方法,但这也会引发一个错误,告诉我它无法编码,因为定位不好。

无论如何,我的问题是,如何将该字节字符串转换为可以存储在 ndb 中的内容?

4

1 回答 1

2

改进答案:

在这种情况下,不应将密钥存储为字符串或文本,而应使用BlobProperty存储未解释的字节字符串的 a。

原答案:

要将字节(字符串)转换为 unicode,请使用方法decode. 您还需要使用一种保留原始二进制数据的编码,即 ISO-8859-1。参见ISO-8859-1 编码和二进制数据保存

unicode_key = key.decode('iso-8859-1')
bytes_key = unicode_key.encode('iso-8859-1')

还可以考虑使用 A TextProperty,因为 StringProperties 已编入索引。

于 2013-04-25T17:20:23.743 回答