密码学与哈希算法的区别

5
我的问题很简单:加密可以隐藏信息,只有被授权访问的人才能看到。你可以加密信息然后解密它。为什么哈希被认为是加密,如果它不能被解密?
我认为哈希被认为是加密,是因为你称MD5为密码哈希函数。

1
加密(在您使用该术语的意义上)不仅用于隐藏信息,还用于识别信息(消息)的提供者(发送方)。哈希更与此方面相关。它可以用于制作签名的等效物。您可以通过与原始签名进行比较来验证签名,但您不能轻易地制作另一个人的签名。 - ypercubeᵀᴹ
4
仅仅因为某个东西是“加密的”并不意味着它就是“加密”。这是两个拥有不同含义的单词。 - Thomas M. DuBuisson
4
它不被认为是加密。相反,它被称为“密码哈希”,这意味着它在密码学领域具有有用的属性,超越了加密的范畴。 - user207421
3
此问题似乎不适合本站,因为它涉及密码学,但没有明确的编程问题。 - Maarten Bodewes
6个回答

6

你可以说哈希不是加密,因为它是单向函数。没有解密,加密就没有什么用处。当然,你可以从哈希(PRF)创建密码(PRP),但这并不改变它们是不同的事实。 - Maarten Bodewes

3

密码学是一个广泛的研究领域,涵盖了加密和安全哈希。它还包括许多其他主题,包括秘密共享、公钥系统和随机数生成。可以将其概括为处理秘密信息的科学。

哈希不被视为加密形式。某些用于哈希和加密的算法之间存在一些关系,但两者并不可互换。


1
En和De前缀很多英语词对,例如en code和de code,或en able和dis able。En通常意味着“放入”,而De通常意味着“移除”。
en加密是应用密码学的行为。解密是移除密码学的行为。
加密意味着可以解密。
使用哈希(“单向密码学”)是不可能的。因此,说你加密哈希毫无意义,因为它不能被解密。

1
这一切都与目的有关。哈希不是关于“查找原始消息是什么”,而是关于唯一的比特序列,换句话说是唯一的ID,用于“标识”原始消息。
即使源消息发生非常小的变化,也会通过所谓的雪崩效应大幅改变输出的比特序列。

0

密码学又称为“秘密写作的艺术”,包括加密和解密,其中加密是将“明文”转换为“密文”,而解密则是将“密文”转换为“明文”。这是一个双向的过程,因为授权人或意图者可以解密并查看加密后的消息。因此,只有密码学用于安全通信。

但在哈希中,它是一种单向机制。这里转换后的值称为“消息摘要”,就像密码学中的密文一样。哈希机制使用哈希算法如SHA(安全哈希算法),MD5(消息摘要v5)等将数据转换为哈希值(或)消息摘要。 转换为哈希值的数据无法转换回来,因为其主要目的是验证和增强安全性。 例如:您在线账户的所有密码都以哈希的形式存储,因为即使被黑客攻击也无法查看。每次输入密码时,它都会被转换为哈希值,并与已存在的密码哈希值进行比较。


-1

如果有足够的时间和计算能力,哈希可以被解密,这就是为什么我们必须不断提高加密标准的原因。现在,这可能是通过暴力破解来完成的,这在数学上并不优雅,但重点在于它们可以被解密。

虽然如上所述,使用单词的方式存在差异,但我们不应该傲慢到认为哈希无法被解密(揭示秘密),它们通常只是用于其他目的。它们仍然是经过加密的文本。


这是不正确的,无论经过多长时间,哈希都不能被解密。可以通过尝试各种数据来查看最初用于创建哈希的数据,但这仍然不是解密。通过解密,可以从哈希中获取原始数据而无需拥有原始数据。像比特币密钥这样的东西之所以可以在足够的时间内被破解,是因为存在一个所有可能用于生成哈希的单词列表,可以从中进行试错。但是,没有单词的情况下,永远不能从哈希中得到单词。 - Bruce
我很抱歉我的措辞不好。我的意思是可以通过尝试所有组合并进行反向查找来找出它。可能会有多个内容散列到相同的结果,但我们必须转向更复杂的散列算法的整个原因是因为它们在足够的时间和计算能力下是可逆的。 - Jesse Shea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接