博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL笔记-用户表中增加salt属性与真实密码聚合存储
阅读量:1950 次
发布时间:2019-04-27

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

这里的原因是因为数据库中存储密码,如果直接存储md5安全性还并不是高。

一般会在表中增加salt,也就是加点盐,和真实密码进行某种聚合。也就是:

数据库中的密码=随机密码+用户输入的密码,进行某种算法聚合的

如下数据库中的表:

这个login_salt就是和真实密码聚合然后把杂交后的密码放到login_pwd中。

生成login_salt相关代码如下:

和真实密码混合生成的最后存储到数据库的字符串:

相关代码如下:

import random, string, hashlib, base64class UserService:    @staticmethod    def 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()    @staticmethod    def 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.values    nickname = 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_name    model_user.nickname = nickname if nickname is not None else login_name    model_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 = "注册成功")

 

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

你可能感兴趣的文章
用Redis实现Session功能
查看>>
基础介绍-红黑树-数据结构
查看>>
基本操作及Java代码实现-红黑树-数据结构和算法
查看>>
插入与Java代码实现-红黑树-数据结构和算法
查看>>
删除及Java代码实现-红黑树-数据结构和算法
查看>>
Springboot内部类加注解失效的原因分析和解决方案
查看>>
Hbase与Hive的关系
查看>>
java工具类解压缩zip和rar
查看>>
java获取服务器启动时间
查看>>
正则中的 (?i) (?s) (?m) (?is) (?im)
查看>>
获取html中文档的所有img标签
查看>>
Java获取字符串单词个数
查看>>
软件安装向导jquery.steps.js
查看>>
require.js入门
查看>>
scss入门
查看>>
markdown编辑器示例
查看>>
@RequestParam与@PathVariable的区别
查看>>
ACE编辑器入门
查看>>
解决eclipse不能设置版本高的tomcat
查看>>
sublime text工具学习总结
查看>>