博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于flask的在线笔记共享管理系统【10】(密码加密passlib)
阅读量:4104 次
发布时间:2019-05-25

本文共 1299 字,大约阅读时间需要 4 分钟。

基于flask的在线笔记共享管理系统【10】(密码加密passlib)

在用户注册时,将数据存入数据库,但是为了保证数据的保密性,使得用户密码对于数据库管理员也不可见需要对密码进行加密再存入数据库 。passlib是python 2&3的密码散列库

它提供 超过30种密码散列算法的跨平台实现,以及 作为管理现有密码哈希的框架。它被设计成有用的 对于范围广泛的任务,从验证/etc/shadow中找到的散列到 为多用户应用程序提供全强度密码哈希。
大家可以参考一下官方参考文档
在这里插入图片描述

库的安装 使用pip安装

pip install passlib

在这里插入图片描述

版本说明
Passlib需要Python 2(> = 2.6)或Python 3(> = 3.3)

使用说明

这里只强调如何使用这个库进行加密,关于加密的原理不做详细解释

首先看一下本项目中的案例。在主入口文件中manage.py中。

使用下面语句导入函数库

from passlib.hash import sha256_crypt

在这里插入图片描述

这里只涉及到用户的注册和用户的登录两部分,下面代码为节选,详细代码我已经上传了源码到我的 资源里。大家可以参考参考。

在这里插入图片描述
在这里插入图片描述
用户注册成功以后,数据会被存入数据库。密码部分已经加密
在这里插入图片描述
用户登录的时候需要输入密码验证身份,代码如下,只需要通过库里的函数进行验证即可。
在这里插入图片描述
这里对密码验证,如果验证的俩个密码一致,返回1,否则返回0

上面的是本次实验对于数据加密部分的应用。用到了passlib库中的俩个函数

sha256_crypt.encrypt(str(form.password.data)) sha256_crypt.verify(password_candidate, password)

这里对这俩各函数做一些说明

sha256_crypt密码哈希算法,遵循PasswordHash API

对于一般的应用程序的开发,我们需要用到 PasswordHash.hash() 【PasswordHash.encrypt()】生成新的哈希值,以及PasswordHash.verify() 根据现有的哈希值检查密码俩种方法。

PasswordHash.hash(秘码,**kwds )这里有俩个参数,第一个参数是需要进行加密的密码字符串,注意这里的数据类型是字符串而不是int型数据第二个参数可以缺省,后续版本对其进行了改进,我们的一般编程用不到。想了解的同学可以参考上面的参考文档。返回值,该函数返回一个哈希加密过的字符串这里的新版本对其进行了改名PasswordHash.encrypt(秘密,**kwds )也就是我们实例中用到的函数
PasswordHash.verify( secret , hash , **context_kwds ) 使用现有哈希验证密钥。这会检查一个秘密是否与存储在指定哈希中的秘密匹配第一个参数是需要检查的字符串第二个参数是一个哈希序列。即已经被加密过的字符串第三个参数是额外的,可以缺省,多数情况下用不到。返回值: 该函数是一个判断函数,如果来个密码一致,返回true,否则返回false。

转载地址:http://dufsi.baihongyu.com/

你可能感兴趣的文章
Android学习笔记之百度地图(搜索服务)
查看>>
Android学习笔记之百度地图(POI搜索之周边检索poiSearchNearBy)
查看>>
Android学习笔记之百度地图(周边检索poiSearchNearBy跳转页面并输出搜索结果)
查看>>
Android学习笔记之百度地图(POI搜索之城市poi检索poiSearchInCity)
查看>>
Android学习笔记之百度地图(驾车路线搜索及RouteOverlay步行路线搜索及RouteOverlay)
查看>>
Android学习笔记之百度地图(根据地名查询经纬度)
查看>>
[Hive]Unsupported major.minor version 51.0解决方案
查看>>
Android学习笔记之详细讲解画圆角图片
查看>>
android.graphics.Paint方法setXfermode (Xfermode x...
查看>>
Android学习笔记之为Dialog自定义布局,并说明空指针问题
查看>>
Android学习笔记进阶之在图片上涂鸦(能清屏)
查看>>
Android开发技巧不同状态的Button
查看>>
Android实战经验之Incude便签
查看>>
Android实战经验之图像处理及特效处理的集锦(总结版)
查看>>
Android常见错误之android.widget.LinearLayout@4375f248 that was originally added here
查看>>
Android进阶2之PopupWindow弹窗(有点悬浮窗的感觉)
查看>>
Android进阶2之SlidingDrawer(滑动式抽屉)
查看>>
Android进阶2之Gallery无限循环
查看>>
Android进阶2之图片倒影效果
查看>>
Android进阶2之检索Android的图片库并显示图片详细信息
查看>>