django-extensions - 如何使用加密字符字段

标签 django-extensions keyczar

是否有任何文档或示例/教程如何让 EncryptedCharField 在 Django 模型中工作?

我花了很多时间在我的 django 项目中安装 django-extension + keyczar 等。没有文档如何安装它。

这是到目前为止的结果:

pip 安装 django 扩展

将“django_extensions”添加到 INSTALLED_APPS

pip 安装 python-keyczar

创建模型 + 使用 EncryptedCharField 添加字段

添加了 ENCRYPTED_FIELD_KEYS_DIR = '../../../enc-keys'

下载KeyczarTool-0.71g-090613.jar

运行以下命令:java -jar KeyczarTool-0.71g-090613.jar create --location=./enc-keys --purpose=crypt --name="第一个 key "--asymmetric=rsa

到目前为止一切顺利,但是当我运行我的服务器时出现以下错误:

keyczar.errors.KeyNotFoundError:未找到带有 hash_val 标识符的 key 。

TRACEBACK
  File "/Users/nv/Projects/project/models/client.py", line 78, in <module>
    class Authorization(models.Model):
  File "/Users/nv/Projects/project/models/client.py", line 86, in Authorization
    iban_enc = EncryptedCharField(max_length=155)
  File "/Users/nv/Projects/project/lib/python2.7/site-packages/django_extensions/db/fields/encrypted.py", line 121, in __init__
    super(EncryptedCharField, self).__init__(*args, **kwargs)
  File "/Users/nv/Projects/project/lib/python2.7/site-packages/django_extensions/db/fields/encrypted.py", line 32, in __init__
    max_length = len(self.prefix) + len(self.crypt.Encrypt('x' * max_length))
  File "/Users/nv/Projects/project/lib/python2.7/site-packages/keyczar/keyczar.py", line 338, in Encrypt
    encrypting_key = self.primary_key
  File "/Users/nv/Projects/project/lib/python2.7/site-packages/keyczar/keyczar.py", line 73, in <lambda>
    primary_key = property(lambda self: self.GetKey(self.primary_version),
  File "/Users/nv/Projects/project/lib/python2.7/site-packages/keyczar/keyczar.py", line 128, in GetKey
    raise errors.KeyNotFoundError(key_id)
keyczar.errors.KeyNotFoundError: Key with hash_val identifier None not found.

我不知道我做错了什么。

最佳答案

找到解决方案

创建后:

  • java -jar KeyczarTool-0.71g-090613.jar addkey --location=./enc-keys --status="primary"--size=2048

关于django-extensions - 如何使用加密字符字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19951095/

相关文章:

java - 使用 KeyCzar 对 Android 进行非对称加密

java - 如何正确地将外部库包含到您的项目中

python - 带有扩展的多个 Django 管理参数

django - 使用 django-extensions 运行 notebook 时设置 ipython notebook 服务器参数的方法是什么?

c++使用通过数据包接收的 key 加密文本? key 沙皇?

java - 在 NetBeans 中添加 keyczar 作为 Maven 依赖项

python - django-extensions shell_plus --kernel 指定连接文件

python - Django 扩展 - dumpscript 无法正常工作

python - Django-extensions 模型图形文本只是正方形

python - Windows 下 python 库 keyczar 的性能