Django自帶的加密算法及加密模塊詳解
Django 內(nèi)置的User類(lèi)提供了用戶(hù)密碼的存儲(chǔ)、驗(yàn)證、修改等功能,可以很方便你的給用戶(hù)提供密碼服務(wù)。
默認(rèn)的Ddjango使用pbkdf2_sha256方式來(lái)存儲(chǔ)和管理用的密碼,當(dāng)然是可以自定義的。
Django 通過(guò)PASSWORD_HASHERS 設(shè)置選擇要使用的算法。
下面有一個(gè)列表,列出了Django 支持的哈希算法類(lèi)。列表的第一個(gè)元素 (即settings.PASSWORD_HASHERS[0]) 會(huì)用于儲(chǔ)存密碼, 所有其它元素都是用于驗(yàn)證的哈希值,它們可以用于檢查現(xiàn)有的密碼。意思是如果你打算使用不同的算法,你需要修改PASSWORD_HASHERS,來(lái)將你最喜歡的算法在列表中放在首位。
一個(gè)settings中的Password_hashers看起來(lái)是這樣的:
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中的用戶(hù)密碼生成、驗(yàn)證的過(guò)程是怎么樣的,可以通過(guò)django.contrib.auth.hashers模塊中的幾個(gè)函數(shù)大體了解一下。通過(guò)對(duì)兩個(gè)函數(shù)的了解,完全可以脫離內(nèi)置的User, 實(shí)現(xiàn)自定義的用戶(hù)表中使用django內(nèi)置的密碼機(jī)制。
首先導(dǎo)入
from django.contrib.auth.hashers import make_password, check_password
通過(guò)函數(shù)名即可發(fā)現(xiàn),主要有兩個(gè)函數(shù),分別是創(chuàng)建密碼和驗(yàn)證
用法
ps = "123456"
dj_ps = make_password(ps, None, 'pbkdf2_sha256') #創(chuàng)建django密碼, 第二個(gè)參數(shù)為None是每次產(chǎn)生的密碼都不用,第三個(gè)參數(shù)為算法, 后面兩個(gè)參數(shù)可以忽略
ps_bool = check_password(ps, dj_ps) # check_password 返回值為一個(gè)Bool類(lèi)型,驗(yàn)證密碼的正確與否
以上這篇Django自帶的加密算法及加密模塊詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python設(shè)計(jì)模式之觀察者模式簡(jiǎn)單示例
這篇文章主要介紹了Python設(shè)計(jì)模式之觀察者模式,簡(jiǎn)單描述了觀察者模式的概念、原理,并結(jié)合實(shí)例形式分析了Python觀察者模式的相關(guān)定義與使用技巧,需要的朋友可以參考下2018-01-01python基礎(chǔ)教程項(xiàng)目三之萬(wàn)能的XML
這篇文章主要為大家詳細(xì)介紹了python基礎(chǔ)教程項(xiàng)目三之萬(wàn)能的XML,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04詳解Python操作RabbitMQ服務(wù)器消息隊(duì)列的遠(yuǎn)程結(jié)果返回
RabbitMQ是一款基于MQ的服務(wù)器,Python可以通過(guò)Pika庫(kù)來(lái)進(jìn)行程序操控,這里我們將來(lái)詳解Python操作RabbitMQ服務(wù)器消息隊(duì)列的遠(yuǎn)程結(jié)果返回:2016-06-06Python爬取用戶(hù)觀影數(shù)據(jù)并分析用戶(hù)與電影之間的隱藏信息!
看電影前很多人都喜歡去 『豆瓣』 看影評(píng),所以我爬取44130條 『豆瓣』 的用戶(hù)觀影數(shù)據(jù),分析用戶(hù)之間的關(guān)系,電影之間的聯(lián)系,以及用戶(hù)和電影之間的隱藏關(guān)系,需要的朋友可以參考下2021-06-06python中np.multiply()、np.dot()和星號(hào)(*)三種乘法運(yùn)算的區(qū)別詳解
這篇文章主要介紹了python中np.multiply()、np.dot()和星號(hào)(*)三種乘法運(yùn)算的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python內(nèi)置函數(shù)anext的具體使用
本文主要介紹了python內(nèi)置函數(shù)anext的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01解決Keras 中加入lambda層無(wú)法正常載入模型問(wèn)題
這篇文章主要介紹了解決Keras 中加入lambda層無(wú)法正常載入模型問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06