首頁  >  文章  >  後端開發  >  Flask裡引用雜湊密碼的方法介紹(附程式碼)

Flask裡引用雜湊密碼的方法介紹(附程式碼)

不言
不言轉載
2019-03-06 14:03:571707瀏覽

本篇文章帶給大家的內容是關於Flask裡引用雜湊密碼的方法介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

雜湊密碼(Password Hash):

對口令進行一次性的加密處理而形成的雜亂字串。這個加密的過程被認為是不可逆的,也就是說,人們認為從哈希串中是不可能還原出原口令的。 (這句話是比較官方的解釋)。   

白話說就是說:當我們在註冊帳號密碼的時候,我們需要用到,Password  Hash 會將我們註冊的密碼進行一次加密處理。然後當我們做登入作業的時候,會進行一次解密處理去和我們輸入的密碼匹配。

在Flask中的使用:

1.導包

# 导包         from werkzeug.security import generate_password_hash,check_password_hash

其中:  generate_password_hash 是生成密碼     ;   check_password_hash 是密碼驗證

2. 註冊帳號的時候用到     generate_password_hash 

<span style="font-size: 15px;">@admin_blue.route(&#39;add_user&#39;)
defadd_user():<br/># Adminuser是数据库中一张表的名字 , user:注册的账号    pass_hash: 注册的密码,此时注册的密码的是 123
add_user=Adminuser(user=&#39;admin&#39;,<span style="color: #ff0000;"><strong>pass_hash=generate_password_hash(&#39;123&#39;)</strong></span>)
db.session.add(add_user)
return&#39;OK&#39;</span>

此時我們註冊的密碼是「123」,當我們用到  generate_password_hash  將「123」加密的時候,資料庫裡面就變成:

3. 我們既然已經完成了註冊,就輪到登錄,當我們登入的時候,在輸入密碼的時候,就需要用到 check_password_hash來解密,進而驗證密碼

# 登录
@admin_blue.route(&#39;/login&#39;,methods=[&#39;get&#39;,&#39;post&#39;])
def login():
    if request.method==&#39;POST&#39;:
        username=request.form.get(&#39;username&#39;)
        password=request.form.get(&#39;password&#39;)
        if not all([username,password]):
            flash(&#39;请输入账号和密码&#39;)
        else:
            sqluser=Adminuser.query.filter(Adminuser.user==username).first()
            if not sqluser:
                flash(&#39;账号不正确&#39;)
            else:
                a=check_password_hash(sqluser.pass_hash,password)
                print(a)
                if a:
                       session[&#39;admin_username&#39;]=username
                       return redirect(url_for(&#39;admin.index&#39;))
                else:
                       flash(&#39;密码不正确&#39;)
    return render_template(&#39;admin/login.html&#39;)

總重點在於:  generate_password_hash 是產生密碼     ;  check_password_hash 是密碼驗證,其他的程式碼就是Flask中最簡單的註冊、登入。

以上是Flask裡引用雜湊密碼的方法介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除