Python Django之密碼的加密和解密

2021-09-28 07:00:05 字數 1564 閱讀 4680

在 django 1.5 之前,django 對於使用者密碼的加密方式一直是 sha1,存在資料庫的樣例如下:

sha1$1bb66$f6c9b132a39287884997412e

c7b6c8a543c79a06

但在 django 1.5 之後,密碼的加密方式預設改為了 pbkdf2 演算法與 sh

a256 雜湊值,存在資料庫的樣例如下:

pbkdf2_sha256$10000$rqppfjqhflpp$yj70h2zcckgqs27i4yp0bx5l

7ve7pnhvndkjvfhinsw=

匯入包:

from django.contrib.auth.hashers import make_password, check_password
從名字就可以看出來他們的作用了。

乙個是生成密碼,乙個是核對密碼。

注意:[直接在python命令直譯器匯入會報錯:

django.core.exceptions.improperlyconfigured: requested setting default_index_tablespace, but settings are not configured. you must either define the environment variable django_settings_module or call settings.configure() before accessing settings.

原因:python啟動方式python,會啟動互動直譯器,需要告訴django使用哪個設定檔案,django會搜尋django_settings_module環境變數,它被設定在settings.py中,

需要設定為:multidatabase.settings

解決方法:用python manage.py shell 來啟動命令直譯器而不是python,因為python manage.py shell中包含了django使用哪個settings.py檔案]

例如:

make_password("123456")
得到結果:

u'pbkdf2_sha25615000majic3ndgfoi$qbclz+peplspcbrf6uopzz42ajiikmpgt6lq+iq8nfq='
另外也可以通過引數來生成密碼:

>>> make_password("123456", none, 'pbkdf2_sha256')
校驗:

校驗就是通過check_password(原始值, 生成的密文)來校驗密碼的。

>>> check_password("123456","pbkdf2_sha25615000majic3ndgfoi$qbclz+peplspcbrf6uopzz42ajiikmpgt6lq+iq8nfq=")

true

python Django之html模板繼承

django之html模板繼承簡單案例 構建母板,確定不變內容和可變內容 構建子板,對可變內容進行填充 結果 定義乙個基礎模板,該框架之後由子模板繼承。命名為base.html,這個頁面主要放公用部分的 各個子頁面都可以繼承這個頁面的樣式。首頁 編寫各個子模板。如下所示,作為基礎模板,必須放在第一行...

python django之url控制器

1.檢視層之路由配置系統 views url配置 urlconf 就像django所支撐 的目錄。它的本質是url與要為該url呼叫的檢視函式之間的對映表 你就是以這種方式告訴django,對於這個url呼叫這段 對於那個url呼叫那段 urlpatterns url 正規表示式,views檢視函式...

python Django安裝教程

2.解壓到桌面 3 開啟cmd cd到這個目錄執行 python setup.py install命令即可安裝,安裝成功提示 installed d python27 lib site packages pytz 2018.5 py2.7.egg finished processing depend...