首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KDF后面跟着哈希?

KDF后面跟着哈希?
EN

Cryptography用户
提问于 2014-05-26 03:09:45
回答 1查看 530关注 0票数 3

据我理解,KDF会增加熵,而哈希则会丢失信息。

我读过KDF应该用来存储密码。我不明白为什么我们不使用KDF,然后使用散列,这样--如果密码数据库被泄露--也就不可能找到简单的密码。

因此,将密码存储在数据库中如下所示:

  1. 使用KDF来增加熵(特别是如果用户使用短密码的话),
  2. 使用散列来丢失信息,
  3. 储存散列。

这不应该是存储密码的建议方法吗?

EN

回答 1

Cryptography用户

发布于 2014-05-26 07:08:06

据我理解,KDF会增加熵,而哈希则会丢失信息。

基于密码的KDF可以被看作哈希函数(或哈希函数的家族,取决于您的定义),只是那些非常复杂的函数。有时人们会说它们“增加了熵”,但这通常意味着

  1. 它们将来自salt的熵组合到密码哈希(您可以使用任何哈希函数),或者
  2. 它们使得密码在计算上更难破解,就好像密码有更大的熵一样(也称为计算熵)。

PBKDF和散列是不可逆转的;这意味着如果不执行蛮力或字典攻击,就不可能找到密码。PBKDF使得执行蛮力搜索在计算上更加困难,而salt使得无法在数据库中找到匹配的密码。

PBKDF和散列都“丢失信息”,因为它们的图像(输出)小于它们的输入域名。但是,这并不会使它们更强,因为如果两个密码提供相同的输出散列,则两者都可以用作身份验证。

因此,在KDF之后使用散列最多是冗余的,并且可以通过增加冲突来减少安全性。

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

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

复制
相关文章

相似问题

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