Django提供给我们的任何方法加密所有/至少字段,如auth.User模型的first_name,last_name,email_id,就像它在将数据存储到数据库之前如何加密PASSWORD字段一样?加密Django用户模型字段
我的解决方法:
我已经通过文件了&在计算器上几个问题,根据这将有可能继承默认BaseUser模型&定义我们自己MYUSER模型中,我们所希望的方式,通过定义加密&解密字符的自定义字符字段。
这个问题在我的应用程序中,我提供了搜索选项,以方便访问字符字段。如果我加密所有这些字段,我很难查询搜索选项。
例如:如果ABCD,ABCDE,ABC是数据库中的字符串&用户希望知道所有具有BC的这样的条目,则不会弹出任何结果。原因是每个ABCD,ABCDE,ABC加密到不同的/唯一的字符串(我使用PyCrypto提供的AES加密)。 BC也被加密成一些独特的字符串,它与ABCD,ABCDE,ABC之间没有相似之处(因为我使用AES算法,密钥长度为32)。并且我写的查询类似于
MyModel.objects.filter(first_name__icontains='BC')
不会返回任何结果。 (是的,我希望搜索不区分大小写)。
[注意:我已经在自定义字段中添加了所有必需的方法,如“to_python”,“get_db_prep_value”,也尝试了查找方法。但是实际问题是每个字符串被加密为独特的字符在相同长度的AES]
由于我是Django的新手,我的问题可能不像Django开发人员那样。我想知道上述两个问题中的任何一个的答案。除非我得到答案,否则我会陷入僵局。在此先感谢,但请亲切我&答案。
是这样的吗? https://github.com/defrex/django-encrypted-fields –
@Bibhas是的,Keyczar也是我可以加密的方式之一。我正在使用PyCrypto的AES实现(我准备好打破我的头并更改代码),是否可以按照我在问题中解释的方式查询文本? – Arun
这在文档中没有解释。你可以试试看。只需实施一个领域并进行测试。 –