Maison  >  Article  >  développement back-end  >  Introduction à la méthode de citation de mots de passe hachés dans Flask (avec code)

Introduction à la méthode de citation de mots de passe hachés dans Flask (avec code)

不言
不言avant
2019-03-06 14:03:571656parcourir

Cet article vous apporte une introduction à la méthode de citation de mots de passe hachés dans Flask (avec code), qui a une certaine valeur de référence, amis dans le besoin Je peux m'y référer, j'espère que cela vous sera utile.

Password Hash :

Une chaîne désordonnée formée par un cryptage unique du mot de passe. Ce processus de cryptage est considéré comme irréversible, c'est-à-dire qu'il est considéré comme impossible de restaurer le mot de passe d'origine à partir de la chaîne de hachage. (Cette phrase est une explication plus officielle).

Pour parler franchement : lorsque nous enregistrons le mot de passe d'un compte, nous devons l'utiliser. Password Hash cryptera le mot de passe que nous avons enregistré. Ensuite, lorsque nous nous connecterons, un processus de décryptage sera effectué pour correspondre au mot de passe que nous avons entré.

Utilisation dans Flask :

1. Package Guide

# 导包         from werkzeug.security import generate_password_hash,check_password_hash

Parmi eux : generate_password_hash est le mot de passe généré check_password_hash est la vérification du mot de passe ; 🎜 >

2. Lors de l'enregistrement d'un compte, utilisez 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>
Le mot de passe que nous avons enregistré à ce moment est "123". Lorsque nous utilisons generate_password_hash pour crypter "123", la base de données se transformera en "123". :

3. Maintenant que nous avons terminé l'inscription, c'est à notre tour de nous connecter. Lorsque nous nous connectons, lors de la saisie du mot de passe, nous devons utiliser check_password_hash pour déchiffrez-le. , puis vérifiez le mot de passe

# 登录
@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;)
En bref, le point clé est : generate_password_hash est de générer le mot de passe ; check_password_hash est la vérification du mot de passe, et les autres codes sont l'enregistrement et la connexion les plus simples ; Ballon.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer