【问题标题】:How is a cryptographic hash useful if it 'cant' be decrypted?如果加密散列“不能”被解密,它有什么用处?
【发布时间】:2015-05-06 07:05:41
【问题描述】:
我知道这是一个愚蠢的问题,但是我在网上查找的所有内容都解释了事物是如何散列的,您如何尝试解密它们,以及讨论它们真正的“单向性”的很多话题- 但是我找不到可以解释它们确切用法的东西。
如果某些东西无法解码,它为什么有用?这是我的猜测,基于常识和我读过的内容,你可以告诉我:
答:我是个白痴。
B. 我是对的,但还有更多用途(解释)
您有一个存储密码的数据库,但低于平均水平的黑客可以访问该数据库。因此,您无需存储密码,而是对其进行哈希处理(使用 sha1)然后忘记它。下次用户尝试登录时,您重新哈希他们的条目,如果哈希匹配,您允许它。允许访问和安全。
正确吗?
【问题讨论】:
标签:
encryption
hash
cryptography
sha
【解决方案1】:
您可能希望通过多种方式在密码学中使用哈希。你已经提到了其中之一。但是,您可以将它们用作数字签名的一部分。在数字签名中,可以使用 Hash 来验证消息的完整性。您可能还想查看this。
【解决方案2】:
我认为总的来说,您可以说哈希对于提供您可能不想存储/传输的信息很有用...
您可以对照他们检查原始信息以验证某些内容,而无需泄露此信息可能是什么或需要再次传输整个信息...
结合其他加密原语,您可以创建具有其他用途的东西...例如 hmacs...再次验证另一个信息...消息的完整性及其真实性,因为您可以说:如果可以为给定消息重新计算hamac,则发送者持有正确的密钥来创建它,说明消息的可能来源......可能只有有权访问此特定密钥的人......如果它的访问是有限的,可能的消息来源是有限的
如果在数字签名中使用,它再次用于验证消息的完整性,以及用于签名的密钥的身份,还提供消息的真实性信息(这甚至更具体比 hmac,因为通常只有一方持有一个特定的密钥......但它通常比使用 hmac 更复杂)