首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“盐”的用法

“盐”的用法
EN

Cryptography用户
提问于 2016-09-19 12:17:14
回答 1查看 538关注 0票数 2

有人能解释一下盐应该如何存储在数据库中吗?盐的使用过程如何?

我在一本书中读到盐应该存储在哈希表数据库的旁边。但是,如果攻击者同时窃取哈希表和盐分值,会发生什么呢?我们应该用多少盐值?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2016-09-19 13:17:47

我们应该用多少盐值?

盐类的思想是使密码散列是唯一的,因此攻击者不能重复使用从破解一个密码到另一个密码的计算,因此您确实应该在每个密码哈希中使用一个唯一的salt。

但是,如果攻击者同时窃取哈希表和盐分值,会发生什么呢?

攻击者将能够暴力强制表中所有用户的密码。这可能允许他恢复一些密码,如果密码是弱的和/或如果使用弱密码散列功能。在攻击者恢复密码后,他可能会尝试在其他服务中重用这些密码,在这些服务中,用户使用的用户名类似/相同。如果两个散列共享相同的盐分,并且恰好是相同的密码(例如"123456"),那么攻击者只破解其中一个用户就可以有效地恢复两个用户的密码。

盐的使用过程如何?

通常,您将salt与密码和散列一起输入到密码散列函数中,这将告诉您密码对此散列和salt是否有效。更好的方案(如Argon2)支持所谓的模块式墓穴格式,它是密码哈希的编码,其中还包括关键参数和每个密码哈希的新(随机)盐(base64 64编码)。如果您可以使用这种格式,这是一个一次性的解决方案,因为您可以只要求工具/后端生成一个新条目(对于给定的密码)并立即存储它,当您有一个登录时,您获取这个字符串并将它传递给验证引擎,您就完成了。

有人能解释一下盐应该如何存储在数据库中吗?

在某个地方,您可以直接将每个盐类映射到相应的密码哈希。这可能是直接与散列在同一条目,在不同的列,甚至是在不同的表中。

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

https://crypto.stackexchange.com/questions/40071

复制
相关文章

相似问题

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