【问题标题】:Can anyone describe the difference between password encryption and hash (sha-256)?谁能描述密码加密和哈希(sha-256)之间的区别?
【发布时间】:2012-01-08 15:54:14
【问题描述】:

我需要将密码保存到数据库。我对加密感到困惑,使用 sha-256 哈希,盐生成方法。如果有人解释这背后的基本概念,那将会有所帮助

【问题讨论】:

    标签: encryption password-protection salt sha256


    【解决方案1】:

    简而言之:

    加密是一个逆过程。换句话说:如果我加密了一些文本,有一个过程可以将新文本转换回原始文本,称为解密

    散列与加密有着根本的不同,因为它没有有这样的过程。哈希的目的是为您提供一个结果,该结果对于给定的输入文本是唯一的(嗯,几乎是唯一的,让我们保持唯一)。这样,人们可以验证两个输入文本是否相等,而无需知道实际输入文本是什么。因此,如果人们得到了您的散列密码,他们仍然无法解密它。 SHA 是一系列提供散列的方法。

    Salts and Peppers 只是散列的附加技术,它描述了在散列之前在输入文本之前和之后添加内容的过程。这提高了将哈希值暴力破解为文本的难度。

    蛮力破解意味着简单地尝试所有可能的输入(aa、ab、ac 等...),看看您是否可以生成一个与您通过入侵某个网站或其他方式获得的哈希值相匹配的哈希值。你可以在这里找到更多信息:https://security.stackexchange.com/questions/3272/password-hashing-add-salt-pepper-or-is-salt-enough

    【讨论】:

      【解决方案2】:

      下面是一个很基本的解释,反正...

      • 加密是一种可逆的数据加密方法。因此,如果您有“密码”,一种加密方法将其转换为(例如)“ufmehlejw”,然后您就可以再次获得“密码”。
      • 散列函数(其中之一是 sha-256)是一个函数,一旦用于字符串,就无法恢复原始字符串。
      • salt 是一个字符串,通常程序员(当然不仅仅是)用来混合给定的密码。它通常是随机生成的。在使用散列函数之前,盐用于扩展原始数据。 salt 的目标是避免攻击者从使用 rainbow tables 的被盗哈希中发现用户的原始密码。

      【讨论】:

        猜你喜欢
        • 2019-07-24
        • 2010-09-24
        • 2012-07-16
        • 2011-06-24
        • 2014-08-19
        • 2016-07-13
        相关资源
        最近更新 更多