Django密碼系統實現過程詳解

2022-10-04 16:45:19 字數 1669 閱讀 4154

一、django密碼儲存和加密方式

#演算法+迭代+鹽+加密

$$>$

預設加密方式配置

#settings裡的預設配置

password_hashers = [

'django.contrib.auth.hashers.pbkdf2passwordhasher',

'django.contrib.auth.hashers.pbkdwww.cppcns.comf2sha1passwordhasher',

'django.contrib.auth.hashers.argon2passwordhasher',

'django.contrib.auth.hashers.bcryptsha256passwordhasher',

'django.contrib.auth.hashers.bcryptpasswordhasher',

]#password_hashers[0]為正在使用的加密儲存方式,其他為檢驗密碼時,可以使用的方式

預設加密方式配置

所有支援的hasher

['django.contrib.auth.hashers.pbkdf2passwordhasher',

'django.contrib.auth.hashers.pbkdf2sha1passwordhasher',

'django.contrib.auth.hashers.argon2passwordhasher',

'django.contrib.auth.hashers.bcryptsha256passwordhasher',

'django.contrib.auth.hashers.bcryptpasswordhasher',

'django.contrib.auth.hashers.sha1passwordhasher',

'django.contrib.auth.hashers.md5passwordhasher',

'django.contrib.auth.hashers.unsaltedsha1passwordhasher',

'django.contrib.auth.hashers.unsaltedmd5passwordhasher',

'django.contrib.auth.hashers.cryptpasswordhasher',

]所有支援的hasher

二、手動校驗密碼

#和資料庫的密碼進行校驗

check_password(password, encoded)

#手動生成加密的密碼,如果password=none,則生成的密碼永遠無法被check_password()

make_password(password, salt=none, hasher='default')

#檢查密碼是否可被check_password()

is_password_usable(encoded_password)

三、密碼格式驗證

auth_password_validators = [

#檢驗和使用者資訊的相似度

,#校驗密碼最小長度

},#校驗是否為過於簡單(容易猜)密碼

,#校驗是否為純數字

,]四、自定義

官方原文

本文標題: django密碼系統實現過程詳解

本文位址: /jiaoben/python/266175.html

django的ORM操作 刪除和編輯實現詳解

向server端傳送資料 有2中方法,1 是 通過url 位址,2 是通過路徑 向server端傳引數方式 1,通過資料 2,通過路徑 url r blog d 刪除功能 在url檔案中,建立乙個delbook路徑,通過url的位址拿到id實現刪除 urlpatterns url r admin a...

django使用者認證系統 修改密碼6

再此之前我們已經完成了使用者登入 註冊 登出等功能,接下來讓我們繼續為使用者提供修改密碼的功能。該功能 django 的 auth 應用也已經為我們提供,過程幾乎和之前的登入功能完全一樣。修改密碼的的檢視函式預設渲染的模板名為 password change form.html,因此首先在 regi...

django的csrf實現過程詳解

如果是ajax提交,可以按照下面的方式處理 可以設定乙個全域性的設定,然後在 function 中執行函式 function 如果是form表單提交,則可以按照下面的方式處理 然後返回使用render的方式返回 中介軟體裡csrf預設是全域性都生效的,但是如果我們有需求,比如全域性生效,但是我某個函...