zoukankan      html  css  js  c++  java
  • 哈希密码的使用

                         

       哈希密码(Password Hash):

            对口令进行一次性的加密处理而形成的杂乱且永不重复的字符串。这个加密的过程被认为是不可逆的,也就是说,人们认为从哈希串中是不可能还原出原口令的。(这句话是比较官方的解释)。   
              
            白话点说就是:当我们在注册账号密码的时候,需要用到,Password  Hash 会将我们注册的密码进行一次加密处理。然后当我们做登录操作的时候,会进行一次解密处理去和我们输入的密码匹配。
        
        
       在Flask中的使用:
            
         1.导包
    1
    # 导包         from werkzeug.security   import  generate_password_hash, check_password_hash

     其中:  generate_password_hash 是生成密码     ;       

    check_password_hash 是密码验证

    而在django中也有自带的加密方式  make_password

      2. 注册账号的时候用到     generate_password_hash 

    1
    2
    3
    4
    5
    @admin_blue.route('add_user')
    defadd_user():      # Adminuser是数据库中一张表的名字 , user:注册的账号    pass_hash: 注册的密码,此时注册的密码的是 123
       add_user=Adminuser(user='admin',pass_hash=generate_password_hash('123456'))
       db.session.add(add_user)
       return'OK'

      此时我们注册的密码是“123456”,当我们用到  generate_password_hash  将“123456”加密的时候,数据库里面就变成:

      3. 我们既然已经完成了注册,就轮到登录,当我们登录的时候,在输入密码的时候,就需要用到 check_password_hash来解密,进而来验证密码

    复制代码
    # 登录
    @admin_blue.route('/login',methods=['get','post'])
    def login():
        if request.method=='POST':
            name=request.form.get('name')
            psw=request.form.get('psw')
            if not all([username,password]):
                flash('请输入账号和密码')
            else:
                sqluser=Adminuser.query.filter(Adminuser.user==name).first()
                if not sqluser:
                    flash('账号不正确')
                else:
                    p=check_password_hash(sqluser.pass_hash,psw)
                    print(a)
                    if p:
                           session['admin_username']=name
                           return redirect(url_for('admin.index'))
                    else:
                           flash('密码不正确')
        return render_template('admin/login.html')
    复制代码
  • 相关阅读:
    1022 D进制的A+B
    1021 个位数统计
    L1-040 最佳情侣身高差
    Celery--基本使用
    Celery--安装
    Celery--简介
    RabbitMQ--常用命令
    RabbitMQ--RPC实现
    RabbitMQ发布订阅
    RabbitMQ基本使用
  • 原文地址:https://www.cnblogs.com/liang715200/p/10565056.html
Copyright © 2011-2022 走看看