django 內建的user類提供了使用者密碼的儲存、驗證、修改等功能,可以很方便你的給使用者提供密碼服務。
預設的ddjango使用pbkdf2_sha256方式來儲存和管理用的密碼,當然是可以自定義的。
django 通過password_hashers 設定選擇要使用的演算法。下面有乙個列表,列出了django 支援的雜湊演算法類。列表的第乙個元素 (即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',
)具體在django中的使用者密碼生成、驗證的過程是怎麼樣的,可以通過django.contrib.auth.hashers模組中的幾個函式大體了解一下。通過對兩個函式的了解,完全可以脫離內建的user, 實現自定義的使用者表中使用django內建的密碼機制。
首先匯入
from django.contrib.auth.hashers import make_password, check_password
通過函式名即可發現,主要有兩個函式,分別是建立密碼和驗證
用法ps = "123456"
dj_ps = make_password(ps, none,'pbkdf2_sha256') #建立django密碼, 第二個引數為none是每次產生的密碼都不用,第三個引數為演算法, 後面兩個引數可以忽略
ps_bool = check_password(ps, dj_ps) # check_password 返回值為乙個bool型別,驗證密碼的正確與否
常見加密演算法及常見加密演算法簡述
通訊雙方即a與b,a傳送資料給b 加密過程 解釋 即便第三方將a傳送給b的資料截獲了,也無法破解資料,因為想要解密密文資料,就需要知道對稱秘鑰,想得到對稱秘鑰就需要知道b的私鑰,其他人是沒有b的私鑰的,所以通過這種方式保證了資料的私密性。如果保管b的私鑰,不是這裡要考慮的問題了 解密過程 以上僅是點...
django自帶的加密方法
1.匯入django自帶的加密演算法模組 from django.contrib.auth.hashers import make password,check password 2.make password 引數1,引數2,引數3 1.引數1 需要加密的字串 2.引數2 是否每次都生成不同的加密...
django自帶的加密模組
加密 from django.contrib.auth.hashers import make password 引數1 需要加密的字串 引數2 是否每次都生成不同的加密串,預設為none,如果給定任意乙個字串,則表示每次生成相同的加密串。引數3 表示加密演算法,常見的加密演算法如下 pbkdf2 ...