Django自帶的加密算法及加密模塊詳解
Django 內(nèi)置的User類提供了用戶密碼的存儲、驗證、修改等功能,可以很方便你的給用戶提供密碼服務(wù)。
默認的Ddjango使用pbkdf2_sha256方式來存儲和管理用的密碼,當然是可以自定義的。
Django 通過PASSWORD_HASHERS 設(shè)置選擇要使用的算法。
下面有一個列表,列出了Django 支持的哈希算法類。列表的第一個元素 (即settings.PASSWORD_HASHERS[0]) 會用于儲存密碼, 所有其它元素都是用于驗證的哈希值,它們可以用于檢查現(xiàn)有的密碼。意思是如果你打算使用不同的算法,你需要修改PASSWORD_HASHERS,來將你最喜歡的算法在列表中放在首位。
一個settings中的Password_hashers看起來是這樣的:
PASSWORD_HASHERS = ( 'django.contrib.auth.hashers.PBKDF2PasswordHasher', 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher', 'django.contrib.auth.hashers.BCryptSHA256PasswordHasher', 'django.contrib.auth.hashers.BCryptPasswordHasher', 'django.contrib.auth.hashers.SHA1PasswordHasher', 'django.contrib.auth.hashers.MD5PasswordHasher', 'django.contrib.auth.hashers.CryptPasswordHasher', )
具體在Django中的用戶密碼生成、驗證的過程是怎么樣的,可以通過django.contrib.auth.hashers模塊中的幾個函數(shù)大體了解一下。通過對兩個函數(shù)的了解,完全可以脫離內(nèi)置的User, 實現(xiàn)自定義的用戶表中使用django內(nèi)置的密碼機制。
首先導(dǎo)入
from django.contrib.auth.hashers import make_password, check_password
通過函數(shù)名即可發(fā)現(xiàn),主要有兩個函數(shù),分別是創(chuàng)建密碼和驗證
用法
ps = "123456"
dj_ps = make_password(ps, None, 'pbkdf2_sha256') #創(chuàng)建django密碼, 第二個參數(shù)為None是每次產(chǎn)生的密碼都不用,第三個參數(shù)為算法, 后面兩個參數(shù)可以忽略
ps_bool = check_password(ps, dj_ps) # check_password 返回值為一個Bool類型,驗證密碼的正確與否
以上這篇Django自帶的加密算法及加密模塊詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django微信小程序后臺開發(fā)教程的實現(xiàn)
這篇文章主要介紹了Django微信小程序后臺開發(fā)教程的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
python基于itchat實現(xiàn)微信群消息同步機器人
本篇文章主要介紹了python基于itchat實現(xiàn)微信群消息同步機器人,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
手動實現(xiàn)把python項目發(fā)布為exe可執(zhí)行程序過程分享
這篇文章主要介紹了手動實現(xiàn)把python項目發(fā)布為exe可執(zhí)行程序過程分享,本文使用C語言實現(xiàn)了一個簡潔的Python打包程序,需要的朋友可以參考下2014-10-10
python自動獲取微信公眾號最新文章的實現(xiàn)代碼
這篇文章主要介紹了python自動獲取微信公眾號最新文章,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
Python 實現(xiàn)Image和Ndarray互相轉(zhuǎn)換
今天小編就為大家分享一篇Python 實現(xiàn)Image和Ndarray互相轉(zhuǎn)換,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python解決方案:WindowsError: [Error 2]
使用Python的rename()函數(shù)重命名文件時出現(xiàn)問題,提示 WindowsError: [Error 2] 錯誤,需要的朋友可以參考下2016-08-08

