本文摘自php中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于Flask里引用哈希密码的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
哈希密码(Password Hash):
对口令进行一次性的加密处理而形成的杂乱字符串。这个加密的过程被认为是不可逆的,也就是说,人们认为从哈希串中是不可能还原出原口令的。(这句话是比较官方的解释)。
白话点说就是:当我们在注册账号密码的时候,需要用到,Password Hash 会将我们注册的密码进行一次加密处理。然后当我们做登录操作的时候,会进行一次解密处理去和我们输入的密码匹配。
在Flask中的使用:
1.导包
1 | # 导包 from werkzeug.security import generate_password_hash,check_password_hash
|
其中: generate_password_hash 是生成密码 ; check_password_hash 是密码验证
2. 注册账号的时候用到 generate_password_hash
1 2 3 4 5 | <span style= "font-size: 15px;" >@admin_blue.route( 'add_user' )
defadd_user():<br># Adminuser是数据库中一张表的名字 , user:注册的账号 pass_hash: 注册的密码,此时注册的密码的是 123
add_user=Adminuser(user= 'admin' ,<span style= "color: #ff0000;" ><strong>pass_hash=generate_password_hash( '123' )</strong></span>)
db.session.add(add_user)
return 'OK' </span>
|
此时我们注册的密码是“123”,当我们用到 generate_password_hash 将“123”加密的时候,数据库里面就变成:

3. 我们既然已经完成了注册,就轮到登录,当我们登录的时候,在输入密码的时候,就需要用到 check_password_hash来解密,进而来验证密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 登录
@admin_blue.route( '/login' ,methods=[ 'get' , 'post' ])
def login():
if request.method== 'POST' :
username=request.form.get( 'username' )
password=request.form.get( 'password' )
if not all([username,password]):
flash( '请输入账号和密码' )
else :
sqluser=Adminuser.query.filter(Adminuser.user==username).first()
if not sqluser:
flash( '账号不正确' )
else :
a=check_password_hash(sqluser.pass_hash,password)
print (a)
if a:
session[ 'admin_username' ]=username
return redirect(url_for( 'admin.index' ))
else :
flash( '密码不正确' )
return render_template( 'admin/login.html' )
|
总之重点就在于: generate_password_hash 是生成密码 ; check_password_hash 是密码验证,其他的代码就是Flask中最简单的注册、登录。
以上就是Flask里引用哈希密码的方法介绍(附代码)的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
实例详解关于golang中for-loop与goroutine
Python range什么意思
Python自动化脚本安装指定版本环境的方法详解
Python print()打印怎么不换行
如何安装jupyter
用例子一文详解Python正则表达式的语法
使用实现pandas读取csv文件指定的前几行
详解在Python中执行系统命令的方法
如何用Python客户端开发?用实例进行Python模块详解
什么是决策树算法?
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Flask里引用哈希密码的方法介绍(附代码)