2013-11-13 3 views
3

Есть ли какая-либо документация или примеры/учебники, как заставить EncryptedCharField работать в модели Django?Как использовать EncryptedCharfield

Мне потребовалось время, чтобы установить django-extension + keyczar и т. Д. В проект django. Как его установить, нет документа.

Это то, что получило до сих пор:

пункта установить Django-расширение

добавил 'django_extensions' в INSTALLED_APPS

пункта установить питон-keyczar

создал + добавляемое поле модели с EncryptedCharField

добавлено ENCRYPTED_FIELD_KEYS_DIR = '../../../enc-keys'

скачано KeyczarTool-0,71 г-090613.jar

побежал следующую команду:. Java -jar KeyczarTool-0,71 г-090613.jar создать --location =/ENC-ключи --purpose = крипту - имя = «первый ключ» --asymmetric = RSA

до сих пор так хорошо, но когда я запускаю мой сервер я получаю следующее сообщение об ошибке:

keyczar.errors.KeyNotFoundError: ключ с hash_val идентификатором None не найден.

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

нашел решение

После создания:.

  • Java -jar KeyczarTool-0,71 г-090613.jar ADDKEY --location =/ENC-ключи --status = "первичный" --size = 2048
+1

Если вы использовали keyczar в Python с Джанго, почему вы не использовали инструмент питона? 'keyczart create --location = keys --purpose = crypt --asymmetric = rsa' и 'keyczart addkey --location = keys --purpose = crypt --size = 2048 --status = primary'? – diegueus9

+0

Просто сделал мой комментарий, потому что параметр размера не является обязательным, а иногда - проблемой в старых приложениях :) cheers – mullerivan

1

нашли решение С OUT JAVA (puach)

попробуйте это

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

убедитесь, что ключи - это папка в вашем проекте, возможно,/var/keys? или там, где вам нравится

приветствий