django 內建的user類提供了使用者密碼的儲存、驗證、修改等功能,預設使用pbkdf2_sha256方式來儲存和管理用的密碼。
django通過password_hashers來設定選擇要使用的演算法,列表的第乙個元素 (即settings.password_hashers[0]) 會用於儲存密碼, 所有其它元素都是用於驗證的雜湊值,它們可以用於檢查現有的密碼。意思是如果你打算使用不同的演算法,你需要修改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',
)具體的密碼生成以及驗證實現
from django.contrib.auth.hashers import make_password, check_password
pwd='4562154'
mpwd=make_password(pwd,none,'pbkdf2_sha256') # 建立django密碼,第三個引數為加密演算法
pwd_bool=check_password(pwd,mpwd)# 返回的是乙個bool型別的值,驗證密碼正確與否
加密與解密(五) 密碼 加密
問題 1 密碼的存在意義?2 加密演算法有哪些?密碼 密碼學 密碼 通訊雙方按照約定的法則進行資訊特殊變換的一種重要保密手段。依照這些法則,變明文為密文,稱為加密變換 變密文為明文,稱為脫密變換 解密 密碼體制可以分為以下幾種 密碼學的目標 加密乙個密碼系統的安全性只在於金鑰的保密性,而不在演算法的...
表單提交校驗與密碼的加密
首先,我們需要對使用者名稱進行非空校驗,為了避免使用者輸入兩個空串,我們在此自定義去空轉換器,springmvc.xml的定義 1 2 bean id conversionservice class org.springframework.format.support.formattingconve...
Django內建的元件 content type
django內建的元件,幫我們開發者做連表操作,使用於一張表跟多張表關聯。使用 contenttype用於關聯表的名稱 genericforeignkey幫助快速實現content type操作,將之對應起來 genericrelation用於反向查詢 不生成資料表 from django.db i...