保存密码时需要加盐 Hash 之后保存密文,那么,如果每个密码使用的“盐”不同的话,“盐”怎么保存?

2019 年 12 月 17 日
 cloudfstrife
9243 次点击
所在节点    信息安全
44 条回复
scukmh
2019 年 12 月 17 日
$yourSalt$passwordHash$
shengchen11
2019 年 12 月 17 日
有些 salt 就是 username 吧
CloudMx
2019 年 12 月 17 日
Bcrypt,可以看看。
Telegram
2019 年 12 月 17 日
对应的盐也存入数据库呗。
wevsty
2019 年 12 月 17 日
salt 可以明文储存在数据库。

Hash 加盐这种做法要保障安全的话,除了 Hash 算法的选择以外也需要盐足够长,一般认为盐的长度应该和密码长度一样长才行。

另外目前是更推荐直接用 BCrypt。
atom234
2019 年 12 月 17 日
用现有字符串字段,如果盐不香,可以放点味精、料酒、蚝油之类的
yisheyuanzhang
2019 年 12 月 17 日
推荐 Bcrypt
cyannnna
2019 年 12 月 17 日
Bcrypt +10086
a7217107
2019 年 12 月 17 日
bcrypt 不用手动存盐
anteros
2019 年 12 月 17 日
4 年前流行这做法,现在还用这做法的,可能大部分都是很久没看过新东西的老油条了吧
qdwang
2019 年 12 月 17 日
存在隔壁
miniliuke
2019 年 12 月 17 日
@php01 现在都流行咋搞
hwdef
2019 年 12 月 17 日
aes(md5(key))
RyougiShiki
2019 年 12 月 17 日
django 自带的 admin 注册个用户到数据库表看一下就明白了,同 1 楼回答。
jorneyr
2019 年 12 月 17 日
Bcrypt 的弊端就是效率太低,当大批量从文件导入创建用户,且每个用户的密码还不一样时,非常非常慢
0TSH60F7J2rVkg8t
2019 年 12 月 17 日
@jorneyr 这个效率是故意设置的,防止被脱裤后直接拿来跑字典和彩虹表
ech0x
2019 年 12 月 17 日
ech0x
2019 年 12 月 17 日
salthash1 = Bcrypt(password + salt1)
salthash2 = sha512(salthash1 + salt2)
其中 salthash1 不能保存在数据库里
yisheyuanzhang
2019 年 12 月 17 日
@jorneyr Bcrypt 有个参数影响加密效率( GENSALT_DEFAULT_LOG2_ROUNDS = 10 ),为了防止暴力破解
xuanbg
2019 年 12 月 17 日
如果每个数据的盐都不同的话,就加一个字段存起来呀。最简单的是用现成的账号 hash 后做盐,这样就不需要额外字段存了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/629841

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX