zoukankan      html  css  js  c++  java
  • flask 密码加密 视频资料

    https://www.bilibili.com/video/av53870541/?p=33

    通过在数据模型中定义函数来实现加密

    from werkzeug.security import generate_password_hash,check_password_hash

    class User(db.Modle):
      id = db.Column(db.Integer,primary_key=True,autoincrement=True)
      name = db.Colmn(db.String(20), unique=True)
      password_hash =db.Colmn(db.String(128))    # 坑 字段不能少于128
     
      @property
      def password(self):
        print('xxxx随意')

      @password.setter
      def passowrd(self,password):
        self.password_hash = generate_password_hash(password)

      def check_password(self,password):
        return check_password_hash(self.password_hash,passowrd)
     

    通过装饰器装饰函数

    其中@property 将函数变为模型中的字段,但并不会影响到模型的字段.如果进行访问只会得到输出的字符串,不会被查看到密码

    通过@pasword.setter 将函数password变为可修改 ,通过赋值来修改,赋值途中使用 

    from werkzeug.security import generate_password_hash 加密,通过self添加到模型数据库中

    def check_password(self,password): 这是通过数据库中记载的加密密码和输入的密码进行一个对比,相同则为trun

    # 往数据库中添加数据
    
    user = User()
    user.name = '张三'
    
    # 注意 模型中没有password这个字段,只有同名函数,通过装饰器@property将其变为(伪)字段 ,可以进行加密,不对模型产生改变
    # @password.setter 变为能将其加密保存

    user.password = '123' db.session.add(user) db.session.commit() # --------------------------------------- # 登录验证 user = User.query.filter(User.name=form.name.data).first() if user: # 使用字段中的验证函数进行hash验证,如果为正则往下 if user.check_password_hash(form.password.data): print('密码验证成功') session['user_name'] = user.name return render_templates('home.html') else: flash('密码不正确') return render_templates('login.html') return render_templates('logon.html',登录表单=登录表单)

    user.password_hash 访问的是加密过后的密码,不能直接看到.只能使用check_password_hash() 来进行确定,防止密码明文泄露

  • 相关阅读:
    OpenCV在MFC图像控件内显示图像
    Android APK反编译具体解释(附图)
    Android下用Properties保存程序配置
    王灏:光音网络致力打造Wi-Fi大生态圈
    解决ccSvcHst.exe CPU占用超50%的问题,及其缘由
    配置管理工具比較
    应用程序无法正常启动0xc0150002 解决方式
    现有一些开源ESB总线的比較
    使用GridView自带分页的代码
    Hadoop 2.4.0新特性介绍
  • 原文地址:https://www.cnblogs.com/zengxm/p/11177698.html
Copyright © 2011-2022 走看看