django-simple-aes-field can be found under the tag v0.1.3.
This project was formely known as django-simple-aes-field which has been deprecated.
To migrate from django-simple-aes-field to django-field-cryptography:
- create a model with the new fields;
- create a migration to transfer the data;
- remove the old fields.
django-field-cryptography provides a django TextField subclass which
encodes itself using cryptography in
the database.
EncryptedTextField uses Fernet
which is an implementation of symmetric cryptography.
Fernet uses AES in CBC mode and HMAC for authentication.
See implementation
for more details.
Install with your favourite package manager:
pip install django-field-cryptographyAdd FERNET_KEY to your settings.py. A FERNET_KEY should contains 32
characters and should be encoded with base64. It's possible to generate
one with the cryptography library.
To generate a key:
>>> from cryptography.fernet import Fernet
>>> Fernet.generate_key()
b'your_key...'
>>>In settings.py:
FERNET_KEY = b'your_key...' from django_cryptography.fields import EncryptedTextField
class MyModel(models.Model):
my_secret_field = EncryptedTextField()