首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们应该如何将盐分应用于密码?

我们应该如何将盐分应用于密码?
EN

Security用户
提问于 2019-10-12 00:26:30
回答 1查看 283关注 0票数 0

根据维基百科:

彩虹表对含有大量盐的单向散列是无效的。例如,考虑一个使用以下函数生成的密码哈希(其中“颇具”是级联操作符): saltedhash(password) = hash(password || salt) Or saltedhash(password) = hash(hash(password) || salt)

假设我使用Argon2(di)来存储密码。我应该使用第二种方法还是第一种方法来散列密码?

作为一个更普遍的问题,在密码存储情况下,哪种哈希方法通常更好?(其他情况如何,如HMACS?)

EN

回答 1

Security用户

回答已采纳

发布于 2019-10-12 01:20:29

假设我使用Argon2(di)来存储密码。我应该使用第二种方法还是第一种方法来散列密码?

不是的。Argon2将salt作为独立于密码的参数,并在内部负责如何将两者合并到计算中。任何专门的密码哈希函数都应该。

但是,理想情况下,您应该使用更高级别的API,它在内部负责盐分的生成和管理,方法是将密码哈希的使用封装为:

  • 一个“注册”函数,它接受密码,生成一个salt,并输出一个验证字符串,该字符串封装了哈希算法、算法参数、salt和hash的选择。例如,请参见password_hash()在PHP中
  • 一个接受密码和验证字符串的“验证”函数,解析后者以恢复所有这些参数,并验证密码是否匹配。参见,例如,password_verify()在PHP中

基本上,如果你用手连接盐和密码,就像你从维基百科中引用的那样,你做错了。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/219487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档