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 = ''
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() 来进行确定,防止密码明文泄露

flask 密码加密 视频资料的更多相关文章

  1. 密码加密与微服务鉴权JWT

    博客学习目标 1.用户注册时候,对数据库中用户的密码进行加密存储(使用 SpringSecurity). 2.使用 JWT 鉴权认证. 一.BCrypt 密码加密 1.常见的加密方式 任何应用考虑到安 ...

  2. C#:使用MD5对用户密码加密与解密

    C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...

  3. tomcat安全配置之证书密码加密存储

    最近项目组要完成一个新Web Servicer接口的开发,其中有项要求是支持外部客户程序以https方式访问这些SOAP接口.项目组当前基于tomcat6.0.29开发,axis版本为1.4.拿到这个 ...

  4. Flask 构建微电影视频网站(一)

    Flask构建电影视频网站 Python MTV模型 Flask微内核 Flask扩展插件配置及使用方法 根据业务开发网站前后台功能 Flask结合MySQL数据库 你将可以独立开发网站 独立部署运维 ...

  5. 和菜鸟们一起攻克金盾2018SS加密视频

    今天刚拿到金盾2018SS加密的视频,界面如下:<ignore_js_op> 机器码由源来的“00000-00000-00000-00000”变成了一串32位的字符串了:<ignor ...

  6. Python flask 构建微电影视频网站☝☝☝

    Python flask 构建微电影视频网站☝☝☝ 1.安装数据库连接依赖包 pip install flask-sqlalchemy 2.创建movie数据库 在CentOS虚拟机,进入MaridD ...

  7. Python flask 构建微电影视频网站✍✍✍

    Python flask 构建微电影视频网站  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大 ...

  8. 基于Flask框架搭建视频网站的学习日志(三)之原始web表单

    基于Flask框架搭建视频网站的学习日志(三)1.原始Web 表单 本节主要用于体验一下前端后端直接数据的交互,样例不是太完善,下一节会加入Flash处理,稍微完善一下页面 (备注:建议先阅读廖雪峰老 ...

  9. 13flask密码加密

    一,了解密码加密方式 密码具有私有性较强的特性,预测密码加密对个人隐私的保护有这非常大的作用.在用flask搭建网站时候若服务器有被攻破的风险,要是用户表中密码字段也被拿走,后果将不堪设想. 在密码保 ...

随机推荐

  1. deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架

    这一周的主体是调参. 1. 超参数:No. 1最重要,No. 2其次,No. 3其次次. No. 1学习率α:最重要的参数.在log取值空间随机采样.例如取值范围是[0.001, 1],r = -4* ...

  2. spring的事务,详解@Transactional

    事务管理是应用系统开发中必不可少的一部分.Spring 为事务管理提供了丰富的功能支持. Spring 事务管理分为编程式和声明式的两种方式. 编程式事务指的是通过编码方式实现事务,编程式事务管理使用 ...

  3. python--mysql的CURD操作

    from pymysql import * def main(): # 创建Connextion连接 conn = connect(host='localhost', port=3306, user= ...

  4. Apollo配置中心介绍与使用指南

    转载于https://github.com/ctripcorp/apollo,by Ctrip, Inc. Apollo配置中心介绍 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中 ...

  5. Oil Deposits(油田)(DFS)

    题目: The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. G ...

  6. Ubuntu18.04安装Fabric

    本文介绍如何在Ubuntu18.04中搭建Fabric1.4实验环境,默认使用root用户. 1.安装Golang 首先下载Golang安装包,安装包可以从这里下载.这里下载的是go1.13.4.li ...

  7. 浅谈在ES5环境下实现const

    最近看到一个面试题--用ES5实现const.作为JS初学者的笔者知道在ES6中有const命令,可以用来声明常量,一旦声明,常量的值就不可改变.例如: 1234567891011 const Pi ...

  8. Linux 信号介绍

    是内容受限时的一种异步通信机制 首先是用来通信的 是异步的 本质上是 int 型的数字编号,早期Unix系统只定义了32种信号,Ret hat7.2支持64种信号,编号0-63(SIGRTMIN=31 ...

  9. 《Java 8实战》读书笔记系列——第三部分:高效Java 8编程(四):使用新的日期时间API

    https://www.lilu.org.cn/https://www.lilu.org.cn/ 第十二章:新的日期时间API 在Java 8之前,我们常用的日期时间API是java.util.Dat ...

  10. TDA2050功率放大器研究

    音频功率放大模块(以下简称功放)用于处理模拟信号,将功率较低的输入信号进行线性放大,输出大功率的信号以驱动换能器.通常,电子发烧友自己设计功放,与各类音源和喇叭匹配,以得到满意的音响效果.在测试中,实 ...