flask-bcrypt - flask-bcrypt-docs-zh 0.5 文件
flask-bcrypt是乙個flask擴充套件,它能為你的應用提供bcrypt雜湊功能。
歡迎批評指正。
flask-bcrypt是乙個flask擴充套件,它為你的應用提供了bcrypt雜湊功能。
得益於近些年來計算機硬體(如gpu)效能的提公升,雜湊技術已經變得很容易被攻破了。想要解決這個問題,乙個積極的作法是使用一種「去優化」的雜湊技術。bcrypt就是這樣乙個雜湊工具;不同於md5和sha1等在速度上優化的雜湊演算法,bcrypt被有意地放慢了演算法速度。
密碼等敏感資料必須被保護起來,而bcrypt正是乙個值得推薦的選擇。
安裝該擴充套件需要如下命令::
$ easy_install flask-bcrypt
如果你已經安裝了pip,可以選擇以下這種方式::
$ pip install flask-bcrypt
註解你需要python development headers作為依賴來安裝py-bcrypt包。如果你是在使用mac os或者windows,你可能已經安裝了它。如果你使用的不是這兩者而是linux,那你需要根據你的系統來尋找包。如果是基於dabian的發行版,那就尋找名為python-dev的包;如果基於redhat的發行版,那就尋找名為python-devel的包。
想要通過擴充套件簡單方便地匯入已經包裝好了類並且將flask應用傳入進去。應該這樣做::
from flask importflask
from flask.ext.bcrypt import
bcrypt)
兩個基礎的雜湊方法已經包含在了bcrypt物件中。在python2中,可以這樣使用它們::
pw_hash = bcrypt.generate_password_hash('
hunter2')
bcrypt.check_password_hash(pw_hash,
'hunter2
') #
returns true
在python3中,你需要使用在generate_password_hash()上使用decode(『utf-8』)方法,如下所示::
pw_hash = bcrypt.generate_password_hash(『hunter2』).decode(『utf-8』)
儘管這些方法事實上並沒有重寫,但api是有意設計得很相似,這可以使那些之前已經使用了雜湊函式的應用很容易地改寫為擁有強大能力的bcrypt。
想要開始使用bcrypt,你可以對你的應用進行如下包裝::)
password = 'hunter2
'pw_hash = bcrypt.generate_password_hash(password)
一旦被雜湊,值是不可逆的。然而,在一些需要確認密碼、將兩次輸入的密碼的雜湊值進行比較的場景下,非常有必要在常數時間(譯者注:big-o(n))處理完成。這可以防止時序攻擊(timing attacks)。bcrypt提供了乙個簡單的方法,如下所示::
candidate = 'secret
'bcrypt.check_password_hash(pw_hash, candidate)
如果兩個密碼一致,check_password_hash方法會返回true。如果不一致,返回false。
命名空間的問題bcrypt_log_rounds選項可以在flask應用中進行配置,這個值會決定encryption的複雜程度,預設值為12。(詳情見bcrypt。)
bcrypt_hash_prefix選項可以在flask應用中進行配置,這個值可對雜湊版本進行設定,預設值為2b。(詳情見bcrypt。)
bcrypt演算法中,密碼的預設長度為72位,超出了72位的部分將被忽略。如果雜湊乙個給定的密碼,常見的解決方案會使用雜湊技術(如sha256)中的hexdigest方法來規避沒有位的問題,之後使用bcrypt對結果進行雜湊。如果bcrypt_handle_long_passwords的值被設定為true,那麼上述的解決方案將無法使用。警告:不要在乙個已經使用了flask-bcrypt的專案中將此選項設定為true,否則你將會使密碼查驗的功能無法使用。警告:如果在乙個已存在的專案中,此選項已經被設定為true,但你卻將它又更改為false,密碼查驗的功能將無法使用。
引數:
檢查雜湊值與密碼是否匹配。密碼會被雜湊,然後在常數時間內與雜湊值進行比較。這個方法會返回true或者false。
check_password_hash的用法示例如下::
pw_hash = bcrypt.generate_password_hash('
secret
', 10)
bcrypt.check_password_hash(pw_hash,
'secret
') #
returns true
引數:
用bcrypt生成乙個密碼的雜湊值。指定rounds的值可以對bcrypt.gensalt()的引數log_rounds進行設定,可以用來決定鹽的複雜程度,預設值為12。指定prefix的值可以對bcrypt.gensalt()的引數prefix進行高寒,可以決定生成雜湊值的演算法的版本。
generate_password_hash的用法示例如下::
pw_hash = bcrypt.generate_password_hash('secret
', 10)
引數:
用擴充套件對應用進行初始化。
引數:
對這個函式而言,簡單地將它從模組中匯入,並作為乙個相似的方法使用是可行的。這裡有乙個簡單的例子::
from flask.ext.bcrypt importgenerate_password_hash
pw_hash = generate_password_hash('
hunter2
', 10)
引數:
對這個函式而言,簡單地將它從模組中匯入,並作為乙個相似的方法使用是可行的。這裡有乙個簡單的例子::
from flask.ext.bcrypt importcheck_password_hash
check_password_hash(pw_hash,
'hunter2
') #
returns true
引數:
Pentaho bi 中文文件
目錄 building and debugging pentaho with eclipse zh cn 1.5.4 getting started with the bi platform zh cn 1.5.4 pentaho building components 1.5.4 pentaho ...
vim 中文文件
安裝中文幫助文件之前首先執行下列操作 在home目錄下列新建資料夾 vim vim是乙個隱藏檔案,不要漏了 vim plugin vim目錄下的plugin資料夾 vim doc vim目錄下的doc資料夾 vim syntax vim目錄下的syntax資料夾 在home目錄下新建隱藏檔案 vim...
sklearn中文文件
apachecn cwiki 位址為 scikit learn 0.18 中文文件 sklearn 基於 python 語言的,簡單高效的資料探勘和資料分析工具,建立在 numpy,scipy 和 matplotlib 上。以下是 sklearn 官方文件中文版,如果你也有興趣,歡迎來一起來維護迭代...