首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不太懂散列

我不太懂散列
EN

Cryptography用户
提问于 2022-02-10 04:50:52
回答 2查看 169关注 0票数 2

我不太懂散列,不管是加密还是其他。

因此,如果您有一个网站,并有用户注册,您可以将他的密码存储为散列。当他们登录时,您的网站接受提交的密码,对其进行散列,并将散列提交与存储的哈希进行比较,对吗?

假设您正在使用SHA-256对一个句子进行散列,您是否曾经解密过这样的散列,或者甚至有能力解密?

最后一个跟进: Whatsapp说我的消息是加密的。所以,如果我在发送它们时加密它们,其他人是如何解密它们的?

我意识到这是一个非常普遍的问题,但我正试图思考这是如何运作的。请不要大喊。

EN

回答 2

Cryptography用户

发布于 2022-02-10 07:15:18

因此,如果您有一个网站,并有用户注册,您可以将他的密码存储为散列。当他们登录时,您的网站接受提交的密码,对其进行散列,并将散列提交与存储的哈希进行比较,对吗?

是的,在标准的现代方法中有三个额外的细节:

  • 密码到达网站TLS-加密;它在哈希之前被解密。
  • Salt (随机抽取密码注册或/和用户名/电子邮件)与密码一起进行散列,并由服务器沿密码哈希存储。
  • 它使用了一个专门为密码设计的缓慢的、有希望的内存硬迭代散列,比如Argon2。如果服务器允许哈希列表和盐泄漏(此类泄漏经常发生),这将被设计为一种保护。这种预防措施使在通常密码字典中查找密码(或者更准确地说,是可接受的密码-最有可能是原始密码)变得更加困难,方法是对候选密码和salt进行散列,并与密码哈希进行比较,就像服务器在登录时检查密码一样。

假设您正在使用SHA-256对一个句子进行散列,您是否曾经解密过这样的散列,或者甚至有能力解密?

不是的。首先,在给定哈希函数的输出时,“解密”不是查找哈希函数输入的正确术语;正确的术语是“反向”。并且,哈希被设计成在正常操作中是不可逆转的。如果哈希的输入是未知的,并在一个大集合中随机选择,且哈希设计良好,则实际上不可能逆转该哈希。

Whatsapp说我的信息是加密的。所以,如果我在发送它们时加密它们,其他人是如何解密它们的?

散列与加密不是一回事。散列以一种设计为不可逆转、不使用密钥的方式转换消息。加密根据加密密钥转换消息,以具有解密密钥的方式可逆。

解密密钥必须是秘密的,否则加密的目标(向不知道解密密钥的对手隐藏加密的内容)无法实现。在对称加密(如AES-GCM)中,加密和解密密钥是相同的。在非对称加密(例如RSA、ECIES)中,它们是不同的:加密密钥可以公开,被称为公钥;解密密钥是私钥。

当您使用使用非对称加密(如Whatsapp)的现代应用程序发送消息时,下面是一个大图:

  • 您的应用程序绘制一个随机对称消息-唯一的密钥。
  • 您的应用程序使用此消息-唯一密钥对消息进行对称加密,结果将被发送。
  • 您的应用程序使用非对称加密(例如,ECIES)和每个预定收件人的公钥反复加密消息--针对每个预定收件人的唯一密钥,并发送结果。
  • 当接收者需要解密消息时,他们的应用程序首先获得加密的消息--在其公钥下加密的唯一密钥,并使用私钥对其进行解密(每次非对称解密),从而生成消息唯一的密钥。
  • 接收者的应用程序获取加密消息,使用消息唯一密钥对每个对称解密进行解密,然后显示解密消息。

保护消息机密性的主要机制是对称加密。非对称加密保护消息-唯一密钥的机密性,从而间接保护消息的机密性。在某些步骤中,哈希通常作为构建块在内部使用,但不是加密消息或消息唯一密钥的机制。

票数 2
EN

Cryptography用户

发布于 2022-02-10 10:47:36

除了@frieu的回答:

假设您正在使用SHA-256对一个句子进行散列,您是否曾经解密过这样的散列,或者甚至有能力解密?

要验证密码,您不必从哈希还原密码。您只需计算要检查的密码的哈希。如果密码相同,您将得到相同的散列。

重要的是要知道,可以有多个密码产生相同的哈希。但是对于SHA-256或Argon2这样的算法,有两个重要方面:

  1. 两个密码产生相同哈希的概率非常低。
  2. 没有分析方法可以找到产生给定哈希的密码。唯一的办法是暴力强迫,即尝试所有可能的价值。如果密码具有低熵(简单地说是“不够随机”),例如,如果密码长度为8个字符,那么它的SHA-256散列很容易被强制执行。为了防止这种情况发生,我们应该使用一些算法,这些算法会导致资源密集,比如Argon2。
票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/98610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档