这是使用pynacl加密的django模型字段类的集合。
django-nacl-fields的Python项目详细描述
这是使用pynacl加密的django模型字段类的集合。这个包主要基于django-encrypted-fields,它使用过时的keychar库来加密字段。除此之外,它的灵感来自django-fernet-field。
关于pynacl
PyNaCl是绑定到libsodium的python,它是Networking and Cryptography library的分叉。这些库的既定目标是提高可用性、安全性和速度。
开始
~ pip install django-nacl-fields
创建用于加密的密钥。
~ python manage.py createkey # put the following line in your settings.py: NACL_FIELDS_KEY= b'p1Et2Rb@;^BYdo`ZRFi!Hc-MXu(^|bVqA-FGqffM'
在您的settings.py(或在使用-f标志生成后自动附加它)
NACL_FIELDS_KEY=b'p1Et2Rb@;^BYdo`ZRFi!Hc-MXu(^|bVqA-FGqffM'
然后,在您的models.py
fromdjango.dbimportmodelsfromnacl_encrypted_fieldsimportNaClTextFieldclassMyModel(models.Model):text_field=NaClTextField()
正常使用您的模型,您的数据将在数据库中加密。
注意:加密数据不能用于查询或排序。在sql中,这些都看起来像带有随机文本的文本字段。
可用字段
当前内置和单元测试字段。
- NaClCharField
- NaClTextField
- NaClDateTimeField
- NaClIntegerField
- NaClFloatField
- NaClEmailField
- NaClBooleanField
加密您自己的字段
< P>使用NaClFieldMixin中的构建可以实现新字段:fromdjango.dbimportmodelsfromnacl_encrypted_fieldsimportNaClFieldMixinclassNaClIPAddressField(NaClFieldMixin,models.IPAddressField):pass
请报告您在尝试此操作时遇到的任何问题。