无论数字证书品牌、价格和类型如何,所有SSL证书的通用规范是采用SHA 256算法,您可以在证书详细信息或产品信息中列出的功能中看到。对于非技术人员来说,SHA 256 算法通常是个谜,但是锐成信息将用通俗的语言向您展示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
- 年 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还是加密和身份验证协议的一部分。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。