任何人都可以描述密码加密和哈希(sha-256)之间的区别吗?

时间:2011-11-29 09:39:22

标签: encryption password-protection salt sha256

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

2 个答案:

答案 0 :(得分:2)

无论如何,以下是一个非常基本的解释......

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

答案 1 :(得分:1)

简而言之:

加密是一个反向过程。换句话说:如果我对某些文本进行加密,则会有一个进程能够将新文本转换回原始文本,称为 decryption

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

Salts and Peppers仅仅是散列的其他技术,它描述了在散列之前在输入文本之前和之后添加内容的过程。这改善了哈希暴力破解文本的难度。

暴力破解意味着只需尝试所有可能的输入(aa,ab,ac等等),看看你是否可以生成一个哈希值,该哈希值与你通过黑客攻击某个网站或其他任何东西得到的哈希相匹配。您可以在此处找到更多相关信息:https://security.stackexchange.com/questions/3272/password-hashing-add-salt-pepper-or-is-salt-enough