Skip to main content

A set of django fields that internally are encrypted using the cryptography.io native python encryption library.

Project description

https://circleci.com/gh/foundertherapy/django-cryptographic-fields.png

About

django-cryptographic-fields is set of fields that wrap standard Django fields with encryption provided by the python cryptography library. These fields are much more compatible with a 12-factor design since they take their encryption key from the settings file instead of a file on disk used by keyczar.

While keyczar is an excellent tool to use for encryption, it’s not compatible with Python 3, and it requires, for hosts like Heroku, that you either check your key file into your git repository for deployment, or implement manual post-deployment processing to write the key stored in an environment variable into a file that keyczar can read.

Getting Started

$ pip install django-cryptographic-fields

Add “cryptographic_fields” to your INSTALLED_APPS setting like this:

INSTALLED_APPS = (
    ...
    'cryptographic_fields',
)

django-cryptographic-fields expects the encryption key to be specified using FIELD_ENCRYPTION_KEY in your project’s settings.py file. For example, to load it from the local environment:

import os

FIELD_ENCRYPTION_KEY = os.environ.get(‘FIELD_ENCRYPTION_KEY’, ‘’)

To use an encrypted field in a Django model, use one of the fields from the cryptographic_fields module:

from cryptographic_fields.fields import EncryptedCharField

class EncryptedFieldModel(models.Model):

encrypted_char_field = EncryptedCharField(max_length=100)

For fields that require max_length to be specified, the Encrypted variants of those fields will automatically increase the size of the database field to hold the encrypted form of the content. For example, a 3 character CharField will automatically specify a database field size of 100 characters when EncryptedCharField(max_length=3) is specified.

Due to the nature of the encrypted data, filtering by values contained in encrypted fields won’t work properly. Sorting is also not supported.

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-cryptographic-fields-0.1.0.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file django-cryptographic-fields-0.1.0.tar.gz.

File metadata

File hashes

Hashes for django-cryptographic-fields-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8737e359ecab89c7906265ac507a2f113c93bbed1e2fce3139fe2ffbe2ba5477
MD5 01008d144bdf1e45a60fbe85f271d2df
BLAKE2b-256 f478588667128c381ba74026cbd9f9eb820844f2b4bfa93def3e8ada56d3ff9e

See more details on using hashes here.

Supported by

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