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')
    复制代码
  • 相关阅读:
    angluar项目里用ant.design组件库做排序功能,可以接口排序,可以组件库做
    echarts箱线图例子分析
    echarts的盒须图问题自问自答自己改造例子
    把数组改成echarts中dataset所需的二维数组
    echarts的markline个性化
    echarts使用dataset实现双y轴效果
    echarts散点图例子scatter-weight折腾记之echarts参数修改
    echarts灵活利用dataset生成多个散点图的例子
    echarts用dataset实现之散点图例子Basic Scatter Chart
    随机字符串生成指定范围内的某个数值
  • 原文地址:https://www.cnblogs.com/liang715200/p/10565056.html
Copyright © 2011-2022 走看看