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
這在文檔中沒有解釋。你可以試試看。只需實施一個領域並進行測試。 –