微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

盐渍哈希密码认证

如何解决盐渍哈希密码认证

我一直在阅读Owasp 10,并且遇到了存储信息的最佳实践。 盐腌哈希。在这里,您会为每个密码生成一个随机的盐,并将其组合并进行哈希处理并存储。 我的疑问是,如果盐是随机生成的,那么当用户键入密码时如何验证密码? 盐和用户名一起保存了吗? 如果是这样,这种做法仍然很脆弱。 或者他们是怎么做到的?

解决方法

将盐与用户名一起保存。盐不是秘密。重点在于确保两个人使用相同的密码,而不会使用相同的哈希密码。这样可以防止预先计算的哈希攻击(彩虹表),并防止泄露数据库中的两个用户具有相同的密码。

尽管每用户随机盐是理想的,但也可以使用确定性但独特的盐来获得盐分的好处。例如,您可以为数据库使用一些固定的字符串,并将其与用户ID(com.example.mygreatsystem:user1@example.com)结合使用,并将其用作盐。由于它对每个用户都是唯一的(不仅在此系统内,而且在整个系统内),因此它可以实现与随机盐相同的目标,而无需额外的数据库查找。像使用随机盐一样,此方案也不必保密。盐的重要部分是独特的。但是,在可行的情况下,最好的做法是在用户记录中存储一个足够长的用户随机盐(通常为8个随机字节)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。