您好,登錄后才能下訂單哦!
怎么在Django中使用自帶加密模塊?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Django 內(nèi)置的User類提供了用戶密碼的存儲、驗(yàn)證、修改等功能,可以很方便你的給用戶提供密碼服務(wù)。
默認(rèn)的Ddjango使用pbkdf2_sha256方式來存儲和管理用的密碼,當(dāng)然是可以自定義的。
Django 通過PASSWORD_HASHERS 設(shè)置選擇要使用的算法。
下面有一個列表,列出了Django 支持的哈希算法類。列表的第一個元素 (即settings.PASSWORD_HASHERS[0]) 會用于儲存密碼, 所有其它元素都是用于驗(yàn)證的哈希值,它們可以用于檢查現(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中的用戶密碼生成、驗(yàn)證的過程是怎么樣的,可以通過django.contrib.auth.hashers模塊中的幾個函數(shù)大體了解一下。通過對兩個函數(shù)的了解,完全可以脫離內(nèi)置的User, 實(shí)現(xiàn)自定義的用戶表中使用django內(nèi)置的密碼機(jī)制。
首先導(dǎo)入
from django.contrib.auth.hashers import make_password, check_password
通過函數(shù)名即可發(fā)現(xiàn),主要有兩個函數(shù),分別是創(chuàng)建密碼和驗(yàn)證
用法
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類型,驗(yàn)證密碼的正確與否
關(guān)于怎么在Django中使用自帶加密模塊問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。