用户密码传输和存储的保护

软件设计的过程中,用户的密码信息最为敏感,在进行用户登录验证时,除了将密码在传输的过程中,进行md5加密,避免密码明文传输过程中被截获外,还有一个就是密码在数据库中的存储安全问题。

常用的方案是对密码进行“加盐”处理。

用户注册。

1.      得到用户传过来的密码后,首先在计算机中获取一个随机数,

2.      获取到随机数后,设计一个任意算法,对随机数与用户密码进行拼接处理,比如最简单的(用户密码+随机数),者将得到一个全新的字符串

3.      我们再对这个新的字符串进行哈希算法处理,得到一个新的密码,由于哈希算法的特殊性,该算法是不可逆的。

4.      将用户id,新密码和随机数保存到数据库中。用户注册成功。

用户登录。

1.      服务端获取到用户的id和密码后,根据用户id从数据库中取出该用户的新密码和随机数。

2.      把用户传过来的旧密码和随机数交给用户注册第2步中的随机数和密码拼接算法,拼接后,得到一个新的字符串(和用户注册第2步得到的全新字符串是一模一样的)。

3.      将新字符串交给哈希算法处理将得到一个处理结果。

4.      如果处理后的结果和数据库中存储的新密码相同,那么,该用户传过来的密码是正确的,登录成功,否则,登录失败。

这就是常用的用户密码“加盐“!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | 只需15分钟,使用谷歌云平台运行Jupyter Notebook

选自Medium 机器之心编译 参与:路雪 近日,Amulya Aankul 在 Medium 上发表文章,描述他在谷歌云平台上运行 Jupyter Noteb...

61580
来自专栏MasiMaro 的技术博文

WinSock 完成端口模型

之前写了关于Winsock的重叠IO模型,按理来说重叠IO模型与之前的模型相比,它的socket即是非阻塞的,也是异步的,它基本上性能非常高,但是它主要的缺点在...

13120
来自专栏点滴积累

geotrellis使用(二十)geotrellis1.0版本新功能及变化介绍

目录 前言 变化情况介绍 总结 一、前言        之前版本是0.9或者0.10.1、0.10.2,最近发现更新成为1.0.0-2077839。1.0应该也...

33840
来自专栏生信宝典

别人的电子书,你的电子书,都在bookdown

bookdown是著名R包作者谢益辉开发的,支持采用Rmarkdown (R代码可以运行)或普通markdown编写文档,然后编译成HTML, WORD, PD...

541110
来自专栏逍遥剑客的游戏开发

公交车线路查询系统

57160
来自专栏生信技能树

(14)不同基因坐标转换-生信菜鸟团博客2周年精选文章集

主流有3个,我只介绍了两个: 用crossmap代替liftover做基因组坐标转换 liftover基因组版本直接的coordinate转换 其实国际三大主流...

687130
来自专栏Crossin的编程教室

Python爬虫:一些常用的爬虫技巧总结

转自:开源中国 http://my.oschina.net/jhao104/blog/647308 用python也差不多一年多了,python应用最多的场景...

32040
来自专栏小樱的经验随笔

CTF---Web入门第五题 貌似有点难

貌似有点难分值:20 来源: 西普学院 难度:难 参与人数:7249人 Get Flag:2519人 答题人数:2690人 解题通过率:94% 不多说,去看题目...

34260
来自专栏北京马哥教育

Python爬虫:一些常用的爬虫技巧总结

用python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码...

31370
来自专栏linux驱动个人学习

Linux进程调度器的设计--Linux进程的管理与调度(十七)

调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换...

23930

扫码关注云+社区

领取腾讯云代金券