首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PBKDF2的salt可以是用户输入密码的散列吗?

PBKDF2的salt可以是用户输入密码的散列吗?
EN

Security用户
提问于 2012-05-14 08:08:54
回答 3查看 3.7K关注 0票数 7

我希望从客户端应用程序中的密码派生密钥,该密码将用作解密数据密钥的主密钥。据我所知,盐应该是私人知识。使用密码中的散列(例如SHA-1)作为PBKDF2的salt参数是否足够?

再一次,据我所知,当攻击者获得该算法的知识时,salt应该是毫无价值的。但是,对于攻击者来说,检索生成但存储的盐类不是更容易吗?我必须把它存放在某个地方,因为钥匙不会只使用一次。

EN

回答 3

Security用户

回答已采纳

发布于 2012-05-14 09:49:18

salt不是秘密,它是为了使Hash/PBKDF2 2结果对每个使用的实例都是唯一的。就目前所知,对于每一个计算出来的散列,盐类的定义都要求它是随机的。如果是密码派生的,两个密码相同的用户最终可能会得到相同的验证器-> Bad。

票数 15
EN

Security用户

发布于 2013-02-16 22:21:16

如果salt是从密码派生出来的,那么完整的密码到存储的哈希函数是确定性的;两个使用相同密码的用户最终将得到相同的哈希。@Jacco已经说过这一点,但含意却没有说:如果你使用密码派生的盐,那么你就没有盐了,只是一个花哨的未加盐的哈希函数;你失去了盐提供的保护,即防止攻击者使用预先计算的表(彩虹表)和对整个哈希密码数据库的并行攻击(或使用密码派生密钥加密的blobs )。

票数 7
EN

Security用户

发布于 2012-05-14 08:59:39

你说你要储存盐。这意味着,如果攻击者能够访问数据库,您希望她获得什么访问权?密码/密码的简单散列,还是随机生成的无用盐?

攻击者很难访问生成的salt (如果将它存储在存储散列密码的地方)。难度是一样的。

但是,通过密码的密码/散列,攻击者可以访问主密钥,并找到可用于此用户其他帐户的原始密码(使用彩虹表/蛮力)。

如果存储盐,则生成一个随机的.

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

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

复制
相关文章

相似问题

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