首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >低熵盐KDF

低熵盐KDF
EN

Cryptography用户
提问于 2012-07-10 13:18:52
回答 2查看 299关注 0票数 4

我需要从用户名和密码中派生一个密钥。这是我唯一能接触到的两件事。我想的是使用PBKDF2,用户名作为salt,密码作为主密码。

有人能帮我评估/确认这个解决方案的安全性吗?

更新:由于盐类必须是独特的,我已经考虑使用以下盐作为盐:

代码语言:javascript
复制
HASH(USERNAME) XOR SOME_GLOBAL_CONSTANT

或者也许

代码语言:javascript
复制
HMAC(SOME_GLOBAL_CONSTANT, USERNAME)

你认为这个更新后的盐值怎么样?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2012-07-10 13:40:23

这是一个合理的解决办法,如果你不能使用随机盐。如果您为应用程序个性化您的哈希函数,那么salt对于每个用户都是全局唯一的。(例如,使用sitename而外的用户名作为salt)唯一发生的盐分重用是同一个用户的旧密码具有相同的salt。但这是个很小的问题。

我不同意多项式想要不可预测的盐。对于大多数涉及密码哈希的协议来说,不可预测性并不是必需的。全局唯一性或至少是稀有性是决定性的属性。

要将站点名和用户名结合起来,我只需将它们连接起来。你的HMAC建议当然也不错。你的xor变体给了我一点不好的感觉,但可能也不错。

票数 6
EN

Cryptography用户

发布于 2012-07-10 13:28:50

这是一个糟糕的想法,在关于证券SE的问题中进行了一些探索。

盐应该是:

  • 不可预测。
  • 独特的,至少在您的数据库和理想的世界范围。

这不需要是秘密。

用户名不是不可预测的,只是满足了唯一性要求。

一个更好的解决方案是随机生成盐,并验证它与您已经使用过的任何盐不匹配。如果验证唯一性很困难,则可以将用户名与连接的随机盐类连接起来,以获得最终的盐分。这并不是防弹的,但它确实有助于减少碰撞。

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

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

复制
相关文章

相似问题

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