SHA-256是一种加密哈希算法,是一种SHA(安全散列算法)家族中的典型和最流行的算法,其他成员还有SHA-1、SHA-3。
SHA-256是一种单向函数,无法从消息摘要推断出明文。
SHA-256算法与消息摘要有关,通常被用于确认消息的完整性,在被用作数字签名。它的主要作用是加密散列,也就是通过一个不可逆的散列函数,将任意长度的字符串变成一个定长的消息摘要代码。
SHA-256是一种256位的哈希算法,即将任意长度的输入,经过 SHA-256 算法压缩后,得到一个256位的输出。常见的 SHA-256 的摘要格式为 64 个十六进制码,即可以用 16 个字节表示。由于 SHA-256 是一种单向函数,因此无法从消息摘要推断出明文,经过 SHA-256 产生的消息摘要是安全不可逆的,所以它是常被用作数字签名,可以防止数据被篡改和保护数据的完整性。
SHA-256 算法具有很好的安全性和散列特性,相比传统的 SHA-1 和 MD5 算法,它是一种更为安全的算法,同时具有了更高的性能,嗅探用户支付信息(如 PAYPAL 等)便利及确保网站服务器安全等功能,是一种强大的加密算法。对于基于网络的信息传输来说,SHA-256 是一种无可替代的哈希算法。
从算法的抽象来看,SHA-256 是基于 Merkle-Damgård 结构的,这个结构允许我们用唯一的哈希函数来构建多种不同的哈希函数系统。在 SHA-256 中,设定了16个大小不同的常量,并且有64组不同的循环,每组循环运算有4步,分别是 Message Schedule 计算、 对8个字安装 Sigma 和Chi 置换计算、 用户 "a" 和 "b" 的寄存器更新以及 将消息的段寄存器添加到结果。总之,SHA-256有着恰好256位输出的特性,这也使它成为了非常安全和高效的哈希函数。