Category: 算法

0

SHA-2是如何工作的:一个关于SHA-256的教程

SHA-2 (安全散列算法2),其中包括SHA-256,是一个非常流行的散列算法。本文,我们将通过一个实例来尽可能地把这个算法简单的介绍一下。 SHA-2以他的安全性著称,(不像SHA-1那样容易破解),并且它的速度很快。在未生成密钥的情况下,比如挖掘比特币,像SHA-2这种快速的hash算法是非常有优势的。 什么是一个哈希函数? 假如你想比较详细的立即通用的哈希函数,可以参考这里。本文就不详细介绍了,不过我们还是要回顾一下哈希函数的三个重要的作用: 确定性的加扰数据。 接收任何长度的输入,但是输入的长度是固定的。 操作不可逆,也就是说不能从输出推出输入。 SHA-2 VS SHA-256 SHA-2是一个算法,他是一个通用的产生hash数据的想法。SHA-256就是假如一些额外的常量,用来定义SHA-2算法的行为。一个比较常见的常量就是输出的长度。比如256或者512,用这个来设置他们输出的比特大小。 下面让我们来一步一步看一个关于SHA-256的例子。 SHA-256 “Hello World” 第一步 – 预处理 把“hello world”转变为二进制:  在后面加上一个1 填充0,使得它是512的整数倍减去64比特,我们这里选择了448比特 在最后加入64比特,这个64比特用来表示之前输入的二进制的长度,用大端来表示。我们这里是88,所以二进制就是“1011000” 这样我们就有了我们的输入,他总是可以被512整除的。 第二步 — 初始化哈希值 (h) 现在我们来创建8个哈希值,他们是硬编码,代表前8个素数的平方根的小数部分的前32位: 2,3,5,7,11,13,17,19 第三步 — 初始化一个舍入常数...