SQL笔记-用户表中增加salt属性与真实密码聚合存储
这里的原因是因为数据库中存储密码,如果直接存储md5安全性还并不是高。
一般会在表中增加salt,也就是加点盐,和真实密码进行某种聚合。也就是:
数据库中的密码=随机密码+用户输入的密码,进行某种算法聚合的
如下数据库中的表:
这个login_salt就是和真实密码聚合然后把杂交后的密码放到login_pwd中。
生成login_salt相关代码如下:
和真实密码混合生成的最后存储到数据库的字符串:
相关代码如下:
import random, string, hashlib, base64class UserService:@staticmethoddef genePwd(pwd, salt):m = hashlib.md5() #获得md5算法对象str = "%s-%s" % (base64.encodebytes(pwd.encode("utf-8")), salt)m.update(str.encode("utf-8"))return m.hexdigest()@staticmethoddef geneSalt(length = 16):keyList = [random.choice(string.ascii_letters + string.digits) for i in range(length)]return "".join(keyList)
controller端相关代码:
@member_page.route("/reg", methods = ["GET", "POST"])
def reg():if request.method == "GET":return render_template("member/reg.html")req = request.valuesnickname = req['nickname'] if "nickname" in req else ""login_name = req['login_name'] if "login_name" in req else ""login_pwd = req['login_pwd'] if "login_pwd" in req else ""login_pwd2 = req['login_pwd2'] if "login_pwd2" in req else ""..................model_user = User()model_user.login_name = login_namemodel_user.nickname = nickname if nickname is not None else login_namemodel_user.login_salt = UserService.geneSalt(8)model_user.login_pwd = UserService.genePwd(login_pwd,model_user.login_salt)model_user.created_time = model_user.updated_time = getCurrentTime()db.session.add(model_user)db.session.commit()return ops_renderJSON(msg = "注册成功")
SQL笔记-用户表中增加salt属性与真实密码聚合存储相关推荐
- sql server 数据库表中增加列,增加字段,插入列,插入字段,修改列,修改字段,
格式 --增加列 alter table 表名 add 字段名 类型 null default 默认值--给列增加注释 execute sp_addextendedproperty 'MS_Descr ...
- cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- SQL Server数据表中数据的增加(插入)、查询、修改、删除
目录 零.码仙励志 一.数据表中数据的增加(插入) 二.数据表中数据的查询 三.数据表中数据的修改 四.数据表中数据的删除 零.码仙励志 伟人所达到并保持着的高处,并不是一飞就到的,而是他们在同伴们都 ...
- SQL在表中增加一列
语法: alter table 表名 add 列明 数据类型; 举例: 在Uni表中增加continent列. 代码: alter table Uni add continent nvarchar(5 ...
- columnproperty server sql_导出SQL Server数据库表中字段的说明/备注
时 间:2013-02-18 09:09:11 作 者:摘 要:导出SQL Server数据库表中字段的说明/备注 正 文: 打开SQL企业管理器 ,找到你要导出用户表字段信息的那个数据库 ,点击工具 ...
- 利用T-SQL处理SQL Server数据库表中的重复行
Duplicate rows in a SQL Server database table can become a problem. We will see how we can find and ...
- Sql查询一个表中除了某个字段以外的所有字段的方法
declare @name varchar(100) declare @sql varchar(1000)SET @sql='select ' DECLARE C11 CURSOR FORselect ...
- 用一条sql语句删除表中所相同记录
用一条sql语句删除表中所相同记录如下一.具有主键的情况 a.具有唯一性的字段id(为唯一主键) delete table where id not in ( select max(id) from ...
- 用MS SQL 语句修改表中字段类型
[问题]用SQL 语句判断表中是否存在password字段,不存在则新增字段,若存在password字段,把字段的类型由int 类型改为text类型. [实现方法] if exists( select ...
最新文章
- Redis实现消息队列
- 推荐给c++学习者的经典
- iOS7以下设备获取mac地址
- -ms-,-moz-,-webkit-,-o-含义及各浏览器内核整理
- nyoj1057寻找最大数3
- python正则匹配表达式(1)
- java c混合编程 linux_linux下C与C++混合编程
- Python+tkinter+sqlite3模拟通信录管理系统
- 计算机应用基础165791,人大网大计算机应用基础试题答案资料.doc
- 【渝粤教育】国家开放大学2018年秋季 1117t机电控制与可编程序控制 参考试题
- 关于readonly修饰符
- linux chmod 命令理解
- MySql数据库级别MD5加密java MD5加密解密工具包
- 主板rgb接口是什么_什么是主板?
- G: LZY的计算器
- 推荐阅读蔡颖先生新作-APS走向实践
- android模拟按键方法,Android随笔之——模拟按键操作的几种方式
- 《Windows-Program:Win32/Contebrew.A!ml 病毒》
- hdu 2197 本原串 思维
- ftp服务器文件传输,FTP服务器之间传输文件