3

EncryptedCharField を Django モデルで動作させる方法に関するドキュメントや例/チュートリアルはありますか?

私のdjangoプロジェクトにdjango-extension + keyczarなどをインストールするのにかなりの時間がかかりました。インストール方法に関するドキュメントはありません。

これはこれまでに得たものです:

pip install django-extensions

INSTALLED_APPS に「django_extensions」を追加

pip install 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="first key" --asymmetric=rsa

ここまでは順調ですが、サーバーを実行すると次のエラーが発生します。

keyczar.errors.KeyNotFoundError: hash_val 識別子のキーが見つかりません。

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.

何が間違っているのかわかりません。

4

2 に答える 2

5

解決策を見つけました

作成後:

  • java -jar KeyczarTool-0.71g-090613.jar addkey --location=./enc-keys --status="primary" --size=2048
于 2013-11-13T13:07:14.983 に答える
1

Java を使用しないソリューションを見つけた (puach)

これを試して

bin/keyczart create --location=keys --purpose=crypt --name=models &&     bin/keyczart addkey --location=keys --status=primary

keys がプロジェクト内のフォルダーであることを確認してください。おそらく /var/keys ?? または好きな場所で

乾杯

于 2016-05-10T20:58:01.633 に答える