跳转到主要内容

本包受django-encrypted-fields的启发。

项目描述

Build Status Pypi Package

Django Fernet Encrypted Fields

此包是在django-encrypted-fields的基础上创建的。

入门指南

$ pip install django-fernet-encrypted-fields

在您的settings.py中设置随机SALT_KEY

SALT_KEY = '0123456789abcdefghijklmnopqrstuvwxyz'

然后,在models.py

from encrypted_fields.fields import EncryptedTextField

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

像平常一样使用您的模型,您的数据将在数据库中被加密。

旋转SALT密钥

您可以通过将SALT_KEY设置中的内容转换为列表来旋转密钥。第一个密钥将用于加密所有新数据,并且将按照给定密钥的顺序尝试解密现有值。这对于密钥轮换很有用:将新密钥放在列表的头部以用于所有新的或更改的数据,但使用旧密钥加密的现有值仍然可以访问。

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

如果您想更新现有的加密记录,只需加载并重新保存模型以使用新密钥即可。

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

可用字段

目前构建并单元测试过的字段。它们与它们的非加密版本具有相同的API。

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

兼容Django版本

兼容Django版本 具体测试
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

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-fernet-encrypted-fields-0.1.3.tar.gz (4.4 kB 查看哈希值)

上传时间

构建分发

django_fernet_encrypted_fields-0.1.3-py3-none-any.whl (5.0 kB 查看哈希值)

上传时间 Python 3

由以下机构支持