三点告诉你关于哈希函数SHA256的知识

SHA(Secure Hash Algorithm)被称为安全散列算法,是美国国家安全局(NSA)所设计的,美国国家标准与技术研究院(NIST)发布的一系列密码散列函数,其中包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等变体。这些函数主要适用于数字签名标准(DSS)里面定义的数字签名算法(DSA)。今天就简单的来介绍分析一下SHA-256,有表达不对的地方欢迎大家指出。

1.SHA256简介

SHA256是SHA-2之下细分出来的一种算法,SHA-2下又可以再分为六个不同的算法标准。其中包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。这些变体除了生成摘要的长度、循环运行的次数等一些微小差异外,算法的基本结构是一致的。

回到SHA256,其实它就是一个哈希函数。

哈希函数,又被称为散列算法,是从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的“指纹”。散列值通常用一个短的随机字母和数字组成的字符串来代表。

对于任意长度的消息或数据,SHA256都会产生一个256bit长的哈希值,称作消息摘要。这就是为什么有些人也称之为消息摘要算法。

(SHA256在线工具地址:https://md5.cn/

2.SHA256的家族史

SHA最初载明的算法于1993年发布,称做安全杂凑标准(Secure Hash Standard),FIPS PUB 180。这个版本常被称为SHA-0。它在发布之后很快就被NSA撤回,并且由1995年发布的修订版本FIPS PUB 180-1(通常称为SHA-1)取代。SHA-1和SHA-0的算法只在压缩函数的讯息转换部分差了一个位元的循环位移。他们可将一个最大2的64次方位元的讯息,转换成一串160位元的讯息摘要;其设计原理相似于MIT教授Ronald L.Rivest所设计的密码学杂凑算法MD4和MD5,然而相继被攻破。

所以后面NIST发布了SHA的其他三个变体,256/384/512,这三个函数都将讯息对应到更长的讯息摘要。2004年2月,发布了一次FIPS PUB 180-2的变更通知,加入了一个额外的变种SHA-224",这是为了符合双金钥3DES所需的金钥长度而定义。这些算法标准的区别除了生成摘要的长度,循环运行次数等有一些微小的差异之外,基本结构大致相同。

散列函数是把消息压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫散列值的指纹。

散列值通常用一个短的随机字母和数字组成的字符串代表。

对于任意长度的消息,SHA256都会产生一个256bit长度的散列值,称为消息摘要,可以用一个长度为64的十六进制字符串表示。

md5.cn在线测试区

3.SHA256过程解析

对于任意长度的消息,SHA256都会产生一个256位的哈希值,称作消息摘要。这个摘要相当于是个长度为32个字节的数组,通常有一个长度为64的十六进制字符串来表示,其中1个字节=8位,一个十六进制的字符的长度为4位。

首先要找到一个合适的加密工具类,网上一搜一大堆,搜索md5.cn就有。

举个“栗子”:哈客部落

经过哈希函数SHA256后得到的哈希值为:4ff277ab0960ad06643deed8f8950027d88faf56029e8f08cf0c3235e11e4719

这里有一个在线加密的链接可以验证https://md5.cn/

总体上,HSA256与MD4、MD5以及HSA-1等哈希函数的操作流程类似,待哈希的消息在继续哈希计算之前首先要进行以下两个步骤:

对消息进行补位处理,最终的长度是512位的倍数,然后以512位为单位对消息进行分块为:

消息区块将进行逐个处理:从一个固定的初始哈希开始,进行以下序列的计算:

其中C是SHA256的压缩函数,+是mod 2^{32},即将两个数字加在一起,如果对2^{32}取余,H^{n}是消息区块的哈希值。


算法详细描述


SHA256的压缩函数主要对512位的消息区块和256位的中间哈希值进行操作,本质上,它是一个通过将消息区块为密钥对中间哈希值进行加密的256位加密算法。因此,为了描述SHA256算法,有以下两方面的组件需要描述:

  • SHA256压缩函数
  • SHA256消息处理流程

公式:

目前对密码学,以及各个算法了解不够深入,因为是刚开始学习使用sha256,所以只是简单的应用,可能与其他人的应用不一样,有不对的地方,欢迎大佬指出,我好及时改正。


【实用工具免费使用】

免费MD5加密解密:https://md5.cn/

MD5加密解密官方交流群1群:857548361

知乎、头条、百家、公众号搜索【哈客部落】

猜你喜欢

转载自blog.csdn.net/m0_69916115/article/details/124635445