Skip to main content

This is inspired by django-encrypted-fields.

Project description

Build Status Pypi Package

Django Fernet Encrypted Fields

This package was created as a successor to django-encrypted-fields.

Getting Started

$ pip install django-fernet-encrypted-fields

In your settings.py, set random SALT_KEY

SALT_KEY = '0123456789abcdefghijklmnopqrstuvwxyz'

Then, in models.py

from encrypted_fields.fields import EncryptedTextField

class MyModel(models.Model):
    text_field = EncryptedTextField()

Use your model as normal and your data will be encrypted in the database.

Rotating SALT keys

You can rotate salt keys by turning the SALT_KEY settings.py entry into a list. The first key will be used to encrypt all new data, and decryption of existing values will be attempted with all given keys in order. This is useful for key rotation: place a new key at the head of the list for use with all new or changed data, but existing values encrypted with old keys will still be accessible

SALT_KEY = [
    'zyxwvutsrqponmlkjihgfedcba9876543210',
    '0123456789abcdefghijklmnopqrstuvwxyz'
]

If you wish to update the existing encrypted records simply load and re-save the models to use the new key.

for obj in MuModel.objects.all():
    obj.save()

Available Fields

Currently build in and unit-tested fields. They have the same APIs as their non-encrypted counterparts.

  • EncryptedCharField
  • EncryptedTextField
  • EncryptedDateTimeField
  • EncryptedIntegerField
  • EncryptedFloatField
  • EncryptedEmailField
  • EncryptedBooleanField

Compatible Django Version

Compatible Django Version Specifically tested
2.2 :heavy_check_mark:
3.0 :heavy_check_mark:
3.1 :heavy_check_mark:
3.2 :heavy_check_mark:
4.0 :heavy_check_mark:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-fernet-encrypted-fields-0.1.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-fernet-encrypted-fields-0.1.0.tar.gz.

File metadata

  • Download URL: django-fernet-encrypted-fields-0.1.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for django-fernet-encrypted-fields-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3568983e4ed1137beb6cb74b071ff72bc082f3a3f7e5fe4eae1e799779b4193e
MD5 4d3be11ba2e9b73a50d089d8f6432721
BLAKE2b-256 abd65a62a5ba5375695c89ff0e4c001f835bdcc09b6b6cc3f64abea04c6ccf7d

See more details on using hashes here.

File details

Details for the file django_fernet_encrypted_fields-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: django_fernet_encrypted_fields-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for django_fernet_encrypted_fields-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb0f49fc839eae6f5973a136a67ca3ee1334f0c260ca34bb87dca8463f4b013b
MD5 18e6a20ccbafe6cd477317768987dbca
BLAKE2b-256 7bdf3f4b99d5ac1fcd37455d2d4957f4f5d363fe6331e8be2d4bcc879f9ec963

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page