java教程之對象序列化應用基本示例詳解。本站提示廣大學習愛好者:(java教程之對象序列化應用基本示例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是java教程之對象序列化應用基本示例詳解正文
暗碼加密簡介
暗碼存儲的重要情勢:
暗碼加密的幾類方法:
函數界說:
werkzeug.security.generate_password_hash(password, method='pbkdf2:sha1', salt_length=8)
generate_password_hash是一個暗碼加鹽哈希函數,生成的哈希值可經由過程
check_password_hash()停止驗證。
哈希以後的哈希字符串格局是如許的:
method$salt$hash
參數解釋:
暗碼生成示例:
>>> from werkzeug.security import generate_password_hash >>> print generate_password_hash('123456') 'pbkdf2:sha1:1000$X97hPa3g$252c0cca000c3674b8ef7a2b8ecd409695aac370'
由於鹽值是隨機的,所以就算是雷同的暗碼,生成的哈希值也不會是一樣的。
暗碼驗證函數:check_password_hash
函數界說:
werkzeug.security.check_password_hash(pwhash, password)
check_password_hash函數用於驗證經由generate_password_hash哈希的暗碼
。若暗碼婚配,則前往真,不然前往假。
參數:
暗碼驗證示例:
>>> from werkzeug.security import check_password_hash >>> pwhash = 'pbkdf2:sha1:1000$X97hPa3g$252c0cca000c3674b8ef7a2b8ecd409695aac370' >>> print check_password_hash(pwhash, '123456') True
舉例解釋
from werkzeug.security import generate_password_hash, \ check_password_hash class User(object): def __init__(self, username, password): self.username = username self.set_password(password) def set_password(self, password): self.pw_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.pw_hash, password)
上面來看看是怎樣任務的:
>>> me = User('John Doe', 'default') >>> me.pw_hash 'sha1$Z9wtkQam$7e6e814998ab3de2b63401a58063c79d92865d79' >>> me.check_password('default') True >>> me.check_password('defaultx') False
小結
下面就是暗碼生成和驗證的辦法,普通來講,默許的加密強度曾經足夠了,假如需
要更龐雜的暗碼,可以加年夜鹽值長度和迭代次數。