项目中密码如何存储?

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

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

目录
相关文章
|
7月前
|
数据安全/隐私保护
2012及其以上系统修改服务器密码指南
2012及其以上系统修改服务器密码指南
|
数据安全/隐私保护
网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用户名问题
网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用户名问题
3377 0
网络文件夹目前是以其他用户名和密码进行映射的——映射盘更换登录用户名问题
|
存储 关系型数据库 MySQL
常见连接工具保存密码获取
之前有发过关于xshell&finalshell密码破解的文章,本文将继续对一些其他常见的连接工具进行讨论,如有错误,欢迎留言指出!
544 0
常见连接工具保存密码获取
|
Unix 数据安全/隐私保护
更改FusionCompute8.0 Web端管理系统密码(修改VRM节点的root帐户密码)
更改FusionCompute8.0 Web端管理系统密码(修改VRM节点的root帐户密码)
959 0
更改FusionCompute8.0 Web端管理系统密码(修改VRM节点的root帐户密码)
|
jenkins 持续交付 数据安全/隐私保护
Jenkins----凭据管理之创建和删除用户名密码形式的凭据
Jenkins----凭据管理之创建和删除用户名密码形式的凭据
659 0
Jenkins----凭据管理之创建和删除用户名密码形式的凭据