项目中密码如何存储?

简介: 密码存储安全至关重要。直接存储明文或仅使用MD5、SHA-2等哈希算法存在彩虹表攻击风险。为增强安全性,可提示用户设置复杂密码,或在密码中加入“盐值”并多次迭代哈希,增加破解难度。BCrypt算法因其多重迭代、加盐及可调成本因子,成为更安全的选择。

● 首先,明文肯定是不行的
● 第二,单纯使用 MD5、SHA-2 将密码摘要后存储也不行,简单密码很容易被彩虹表攻击,例如
○ 攻击者可以把常用密码和它们的 MD5 摘要结果放在被称作【彩虹表】的表里,反查就能查到原始密码
加密结果 原始密码
e10adc3949ba59abbe56e057f20f883e 123456
e80b5017098950fc58aad83c8c14978e abcdef
... ...
因此
● 要么提示用户输入足够强度的密码,增加破解难度
● 要么我们帮用户增加密码的复杂度,增加破解难度
○ 可以在用户简单密码基础上加上一段盐值,让密码变得复杂
○ 可以进行多次迭代哈希摘要运算,而不是一次摘要运算
● 还有一种办法就是用 BCrypt,它不仅采用了多次迭代和加盐,还可以控制成本因子来增加哈希运算量,让攻击者知难而退

目录
相关文章
|
存储 算法 安全
用户密码到底要怎么加密存储?
作为互联网公司的信息安全从业人员经常要处理撞库扫号事件,产生撞库扫号的根本原因是一些企业发生了信息泄露事件,且这些泄露数据未加密或者加密方式比较弱,导致黑客可以还原出原始的用户密码。
970 0
用户密码到底要怎么加密存储?
|
8月前
|
存储
uniapp怎么存储用户登录的所有数据?
uniapp怎么存储用户登录的所有数据?
|
8月前
|
数据安全/隐私保护
2012及其以上系统修改服务器密码指南
2012及其以上系统修改服务器密码指南
|
数据安全/隐私保护
网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用户名问题
网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用户名问题
3580 0
网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用户名问题
|
算法 数据库 数据安全/隐私保护
md5加密科普,关于平时数据库密码的保存
md5加密科普,关于平时数据库密码的保存
md5加密科普,关于平时数据库密码的保存
|
XML 网络协议 关系型数据库
使用数据库存储Freeswitch账户与密码
FreeSWITCH-CN Google Groups 很好很强大,可 FreeSWITCH 遵循RFC并支持很多高级的SIP特性,如 presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以用作一个SBC进行透明的SIP代理(proxy)以支持其它媒体如T.38等。FreeSWITCH 支持宽带及窄带语音编码,电话会议桥可同时支持8、12、16、24、32及48kHZ的语音。而在传统的电话网络中,要做到三方通话或多方通话需要通过专门的芯片来处理,其它像预付费,彩铃等业务在PSTN网络中都需要依靠智能网(IN)才能实现,而且配置起来相当不灵活。
|
存储 算法 安全
我去,同事居然用明文存储密码!!!
Java技术栈 www.javastack.cn 优秀的Java技术公众号 Oh My God!
我去,同事居然用明文存储密码!!!