この記事では、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('add_user') defadd_user():<br/># Adminuser是数据库中一张表的名字 , user:注册的账号 pass_hash: 注册的密码,此时注册的密码的是 123 add_user=Adminuser(user='admin',<span style="color: #ff0000;"><strong>pass_hash=generate_password_hash('123')</strong></span>) db.session.add(add_user) return'OK'</span>
今回登録したパスワードは「123」ですが、generate_password_hash を使用して「123」を暗号化すると、データベースは次のようになります。
3. 登録が完了したので、次はログインします。ログインするとき、パスワードを入力するときに、check_password_hash を使用して復号化して検証する必要があります。 . Password# 登录 @admin_blue.route('/login',methods=['get','post']) def login(): if request.method=='POST': username=request.form.get('username') password=request.form.get('password') if not all([username,password]): flash('请输入账号和密码') else: sqluser=Adminuser.query.filter(Adminuser.user==username).first() if not sqluser: flash('账号不正确') else: a=check_password_hash(sqluser.pass_hash,password) print(a) if a: session['admin_username']=username return redirect(url_for('admin.index')) else: flash('密码不正确') return render_template('admin/login.html')
以上がFlaskでハッシュ化されたパスワードを引用する方法の紹介(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。