这是使用pynacl加密的django模型字段类的集合。

django-nacl-fields的Python项目详细描述


Build StatusRead the Docs (version)

这是使用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

请报告您在尝试此操作时遇到的任何问题。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Eclipse内存分析器(MAT):不显示当前正在运行的进程   java Apache Velocity:转义字符不能作为关联数组键用于PHP   不截断零的java格式十进制输出   在另一个类文件中调用时返回空值的java getter   java集合获取连接   java解析json使用Gson登录系统应用程序强制关闭   java DelferredResult带有两个请求的ajax请求   java可降低功耗,同时应使用无线   java BoxLayout无法共享错误?   java如何使用计时器制作闹钟   java使用OAuth2保护RESTWeb服务:一般原则   java在一个jframe上显示多个图像和按钮