添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
失恋的鞭炮  ·  国家广播电视总局 ...·  1 年前    · 
魁梧的排球  ·  断·桥_百度百科·  1 年前    · 
谈及SHA256算法,很多人觉得比较复杂,总是搞不清楚它是什么。今天,小锐用通俗的话来讲述一下SHA256是什么,以及它是如何工作的。总的来说,SHA 256 是用于数字签名验证、SSL 握手、密码保护和许多其他安全相关操作的标准哈希算法。

谈及SHA256算法,很多人觉得比较复杂,总是搞不清楚它是什么。今天,小锐用通俗的话来讲述一下SHA256是什么,以及它是如何工作的。

SHA 256算法是什么

要理解SHA 256算法,我们需要先解释哈希函数。哈希函数又称散列函数,是将任何长度的信息转换为另一个值的过程。本质上,它包含数据块,这些数据块从原始字符串转换为固定长度的值。这种值被称为散列值(哈希值)。

SHA 256是SHA 2系列算法细分出的一种算法,其中SHA是 Secure Hash Algorithm 的缩写,名称中的256值代表最终的哈希值摘要。哈希值通常用一个长度为64的十六进制字符串(由随机字母和数字组成的)来表示,相当于是个长度为32个字节的数组,其中1个字节=8位。即无论明文大小如何,哈希值始终为256 位。举例说明一下:

锐成信息连接一切服务

这句话经过哈希函数SHA256后得到的哈希值为:

1033C30AE28488FF7497D61D2FB1DA50AB480824186A24019D6736126870FBF9

简而言之,SHA 256通过将消息和文件等数据转换为固定长度为256位的、且难以区分的字符串来保护数据不被截取或篡改。几乎各行各业都会使用SHA256算法,包括政府机构和区块链等创新技术。

SHA 256算法的主要特点

SHA 256算法的关键特性是消息长度、摘要长度和不可逆性。

消息长度 :明文(即加密前的可读文本)的长度应小于 264 位。

摘要长度 :消息摘要(即将加密哈希函数应用于数据的哈希值)长度应为 256 位。在您的服务器上安装 SSL 证书时,您可以选择SHA-512或更大的摘要。虽然SHA-512更安全,但不建议将其用于大多数系统,因为它需要更强大计算能力和计算机性能。

不可逆性 :所有哈希函数(例如 SHA 256)在设计上都是不可逆的。对于每个输入,您只有一个输出,但反之则不然。多个输入产生相同的输出。输出具有固定大小,但输入没有大小限制。

SHA 256算法实践

现在请看哈希函数是如何工作的真实示例。假设您写了“ 便宜SSL证书 ”的消息并对其应用 SHA-256 哈希函数,将会得到:

3868401EDD8E4AE2F804AC3A6215C5EC522AE032F59C13296C1A25CAE4F26C52

现在,我们在消息末尾添加一个感叹号:“便宜SSL证书!”,并生成输出。结果则是这样:

EE39F1A692558947B80109483AF80ACC1E3722D533B7A9E7713E823F6E2D2A57

如您所见,仅添加一个字符,哈希值长度保持不变,但是得到的结果完全不同,这也就是为什么sha256比较安全的原因。如果您要将此消息发送给朋友,则需提供哈希值并指定算法。您的朋友会在他们的那端验证哈希值,如果匹配,他们就会知道该消息是真实的。

SHA 算法历史

安全散列算法是美国国家安全局 (NSA) 创建的。美国政府为这项技术申请了专利,然后以免版税许可的形式发布,供所有人使用。

第一个SHA-0算法可以追溯到 1993 年。紧接着SHA-1于1995年问世,尽管已被破解,但现在还是有在一些老版本的服务器和客户端上使用。2001年,NSA发布了 SHA -2系列算法,其中包括 SHA 256 和其他五个不同算法标准:

  • SHA 224
  • SHA 384
  • SHA 512
  • SHA 512/224
  • SHA 512/256
  • 2015 年 8 月 5 日,NIST(美国国家标准与技术研究院)发布了 SHA -3,这是最新的安全哈希算法,内部算法设计与以往不同。虽然 NIST 目前还没有计划吊销 SHA-2 算法,但如果有必要,SHA-3可以在当前应用中替代掉SHA-2。

    根据用于监控 SSL/TLS 支持质量的全球仪表板SSL Pulse称,Alexa全世界最受欢迎的网站列表中,有97.2%的网站使用 SHA-256 算法的SSL证书。

    SHA 256应用

    SHA 256 是用于数字签名验证、SSL 握手、密码保护和许多其他安全相关操作的标准哈希算法。

    数字签名验证

    数字签名是一种电子签名,用于验证消息(例如电子邮件、信用卡交易或电子文档)的真实性和完整性。它是通过散列文件并使用 PKI(公钥基础设施)对其进行加密而创建的。

    SHA 256算法在整个过程中的作用是保证数字签名的完整性。接收方的客户端检查自己端的哈希算法,并使用公钥对消息进行解密。如果匹配,则数据是真实有效、未被篡改。

    SSL 握手

    SSL 握手是Web浏览会话的关键元素,它依赖于SHA算法功能。通过SSL/TLS的通信总是从SSL握手开始,这是一种非对称加密技术,允许浏览器验证web服务器,获得公钥,并在数据传输开始之前建立一个安全连接。

    网站以散列格式存储用户密码。如前所述,哈希使用加密算法将密码转换为一串短的字母和数字。如果网站被黑客入侵,网络攻击者将无法获得哈希密码。

    区块链交易

    SHA-256 算法是创建比特币时用于加密货币的第一个算法。区块头是区块链的基本元素,因为它们有助于以特定顺序将一个交易区块连接到下一个交易区块。正如之前提到的,当输入的信息有微不足道的差别,SHA算法也能产生大相径庭的结果。当任意区块发生变化时,都会影响后续的所有区块。所以如果想要修改某个区块的内容,就必须修改后许所有区块的内容,而这几乎是不可能的,从而保证了区块数据的安全。

    SHA 256算法是Web数据保护不可或缺的一部分。在本文中,我们只是浅谈SHA2算法,并没有深入研究数学及其背后的函数。即便您不是技术人员,想必也大概清楚SHA2算法的概念和应用了吧。

    在我们还没有造出破解复杂哈希函数的量子计算机之前,SHA 256仍将是数据和文件完整性的行业标准哈希算法。距离这种场景可能还有几十年,所以目前,SHA 256还是加密和身份验证协议的一部分。

    参考资料:

    https://www.racent.com/blog/a-guide-sha256-algorithm