【问题标题】:Is password self-encryption viable?密码自加密可行吗?
【发布时间】:2014-10-23 20:26:01
【问题描述】:

我一直在看密码存储,基本上找到了2种常用的技术。

  1. 使用单个密钥加密所有存储的密码。
  2. 使用哈希
    • 将哈希与盐一起使用。

存储“自行加密”的密码是否存在缺陷,即用密码password1加密一个txt,上面写着password1,而不存储它未加密,当用户想要登录时,解密,比较和授予访问权限(或不授予)?

我对这个话题不是很了解,所以,有人可以启发我吗?

【问题讨论】:

  • 使用自身加密密码本质上是一种散列函数,尽管它是一个没有太多分析的临时函数。旧的 UNIX crypt 命令将此概念与 DES 的变体一起使用。

标签: security encryption passwords


【解决方案1】:

与使用带盐的哈希相比,这具有三个缺点。

  1. 它容易受到字典攻击:任何掌握了您的密码文件的人都可以尝试使用常用密码(例如password1)并查看它们是否会自行加密到存储的值。更糟糕的是,这取决于您如何进行加密,这可以在获取密码文件之前离线完成,并将结果存储在查找表中,以便当有人获取您的文件时,它可以立即被破解。
  2. 它需要可变数量的存储空间,这对数据库不太友好。哈希具有固定长度的输出,但加密长度随输入的长度而变化。
  3. 它不容易被迭代。真正正确的方法是使用带盐的散列,但要迭代函数几千次(即散列,然后再次散列,然后再次散列......)。这意味着验证密码仍然可以在一两秒内完成(取决于你散列的次数),这通常没有问题;但要破解它要困难得多,因为您现在尝试的每个密码都需要经过数千次哈希处理。这里没有明显的方法,因为加密可能会增加长度(当您添加初始化向量等时)。

真的,完全没有理由这样做,因为有一种可靠且成熟的技术可以做得更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    相关资源
    最近更新 更多