Django中密碼的加密、驗密、解密操作
簡單介紹一下今天使用到的django內(nèi)置的加解密包:
from django.contrib.auth.hashers import make_password
如上圖所示,django.contrib.auth.hashers即為django內(nèi)置的加解密包。
小提示:
pycharm中的Python Console(如下圖所示)可以執(zhí)行django的語句,類似python解釋器。

1.加密
語句:make_password(原始密碼[,固定字串][,加密方式])
return 加密后的密碼
make_password(原始密碼) 或 make_password(原始密碼,None) 或 make_password(原始密碼,''):每次產(chǎn)生的密碼均不同。
>>> from django.contrib.auth.hashers import make_password
>>> make_password('a')
'pbkdf2_sha256$120000$m7gXe6yy0hJd$4ML8hHFQMrGyAXXkJpz9C4MOu8RJ6IvH19fpJaSVz0c='
>>> make_password('a')
'pbkdf2_sha256$120000$uD5csLIeBqWR$HvvTnZsUmATa+KBSCzRbRR5tYNaBab7VWpk2O4NfURU='
>>> make_password('a',None)
'pbkdf2_sha256$120000$SG5CBgULfUew$alE84q7NAzkraQ2Gr1J61pPU6gXLlvCwA2E5H3d75cQ='
>>> make_password('a',None)
'pbkdf2_sha256$120000$Kcq2i6cFokS0$tAaRf6CAFwaqmg9QDHFefTkzCusla2JqU+FKMkjiilk='
>>> make_password('a','')
'pbkdf2_sha256$120000$qBmkLhQTZX8B$pXZ3PZkiPH3fBGjUQt+SsGFpYhIn3BHgACmE5bDdTK0='
>>> make_password('a','')
'pbkdf2_sha256$120000$QR3QAh7MCF15$nAQVTKHEFks92NPmLY2S3odHeT7PoaFoIL7/etKs08w='
make_password(原始密碼,固定字串):產(chǎn)生相同密碼。
>>> from django.contrib.auth.hashers import make_password
>>> make_password('a','a')
'pbkdf2_sha256$120000$a$l8oCmo99z83LSu7DX4AGnjHHpeVmecW3puc4ufA55mE='
>>> make_password('a','a')
'pbkdf2_sha256$120000$a$l8oCmo99z83LSu7DX4AGnjHHpeVmecW3puc4ufA55mE='
>>> make_password('a','abcd')
'pbkdf2_sha256$120000$abcd$JmTnyyEmsg4YsssiJU4yi0RDAvvJEnqjJOCTounGDc0='
>>> make_password('a','abcd')
'pbkdf2_sha256$120000$abcd$JmTnyyEmsg4YsssiJU4yi0RDAvvJEnqjJOCTounGDc0='
make_password(原始密碼,固定字串,加密方式)
>>> from django.contrib.auth.hashers import make_password
>>> make_password('a','ab','pbkdf2_sha256')
'pbkdf2_sha256$120000$ab$KjztZyslBdOqErZyWGtDdB0FhGA/vx4CfL0dFDKbGzI='
使用示例:
from django.contrib.auth.hashers import make_password
class AddView(View):
def get(self, request):
return render(request, "user/add.html")
def post(self, request):
username = request.POST.get('username')
password = request.POST.get('password')
.......
#密碼加密
password=make_password(password)
2.驗證密碼
語句:check_password (原始密碼, 加密后的密碼)
return True/False
當然也可以不需要加密,那么判斷密碼,則加密后的密碼,直接用數(shù)據(jù)庫中的原始密碼。
另外一種驗證登錄密碼的方式是authenticate(username=username, password=password),但這種方式的password必須是密文,不能是原始密碼(明文)
3.無法解密
總結(jié)
以上所述是小編給大家介紹的Django中密碼的加密、驗密、解密操作,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
python 三種方法實現(xiàn)對Excel表格的讀寫
這篇文章主要介紹了python 三種方法實現(xiàn)對Excel表格的讀寫,幫助大家更好的利用python處理表格,感興趣的朋友可以了解下2020-11-11
基于Python爬取fofa網(wǎng)頁端數(shù)據(jù)過程解析
這篇文章主要介紹了基于Python爬取fofa網(wǎng)頁端數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07
python 實現(xiàn)提取某個索引中某個時間段的數(shù)據(jù)方法
今天小編就為大家分享一篇python 實現(xiàn)提取某個索引中某個時間段的數(shù)據(jù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02

