ホームページ  >  記事  >  バックエンド開発  >  Flaskでハッシュ化されたパスワードを引用する方法の紹介(コード付き)

Flaskでハッシュ化されたパスワードを引用する方法の紹介(コード付き)

不言
不言転載
2019-03-06 14:03:571658ブラウズ

この記事では、Flask でハッシュ化されたパスワードを引用する方法 (コード付き) を紹介します。必要な場合はそれを参照してください。お役に立てれば幸いです。

パスワード ハッシュ:

パスワードを 1 回限り暗号化して形成される乱雑な文字列。この暗号化プロセスは不可逆的であると考えられています。つまり、ハッシュ文字列から元のパスワードを復元することは不可能であると考えられています。 (この文はより公式な説明です)。

わかりやすく言うと、アカウントとパスワードを登録するとき、パスワード ハッシュを使用して登録したパスワードを暗号化する必要があります。その後、ログインすると、入力したパスワードと一致する復号化プロセスが実行されます。

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 を使用して復号化して検証する必要があります。 . Password

# 登录
@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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。