SHA 256算法

1. SHA 256算法是什么

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

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

锐成信息连接一切服务

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

1033C30AE28488FF7497D61D2FB1DA50AB480824186A24019D6736126870FBF9

简而言之,SHA 256通过将消息和文件等数据转换为固定长度为256位的、且难以区分的字符串来保护数据不被截取或篡改。

2. SHA 256算法的主要特点

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

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

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

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

3. SHA 256算法实践

3.1 文本

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

3868401EDD8E4AE2F804AC3A6215C5EC522AE032F59C13296C1A25CAE4F26C52

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

EE39F1A692558947B80109483AF80ACC1E3722D533B7A9E7713E823F6E2D2A57

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

3.2 文件

在Linux系统中,可以使用命令行工具对文件进行SHA256计算。(本质是对文件中的文本进行计算,你可以直接复制出文本,通过3.1方法进行计算)

步骤如下:

  1. 打开终端(Terminal)。

  2. 使用cd命令进入要计算SHA256值的文件所在的目录。

  3. 输入如下命令:

    sha256sum filename.extension
    

    其中filename.extension是要计算SHA256值的文件名(需要包含文件格式扩展名)。

你可能感兴趣的:(算法,算法)