主页 > imtoken官网下载2.0苹果版 > 三点告诉你哈希函数SHA256

三点告诉你哈希函数SHA256

imtoken官网下载2.0苹果版 2023-01-18 16:29:36

SHA(Secure Hash Algorithm)被称为安全散列算法,是由美国国家安全局(NSA)设计并由美国国家标准与技术研究院(NIST)发布的一系列密码散列函数,包括SHA-< Variants例如@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 生成一个 256 位的哈希值,称为消息摘要。这就是为什么有些人也称其为消息摘要算法。

比特币算法原理_比特币算法源代码_比特币算法原理

(SHA256在线工具地址:)

2.SHA256的家族史

最初由 SHA 指定的算法于 1993 年发布,称为 Secure Hash Standard,FIPS PUB 180。这个版本通常被称为 SHA-0。它在发布后不久就被 NSA 撤回,取而代之的是 1995 年发布的修订版 FIPS PUB 180-1(通常称为 SHA-1))。仅使用了 SHA-1 和 SHA-0 的算法在压缩函数中缺少 1 位循环移位的消息转换部分。它们可以将一个最大为 2 的 64 维方位角的消息转换成一系列 160 位的消息摘要;它的设计原理类似于 MIT 教授 Ronald L.Rivest 设计的密码散列算法 MD4 和 MD5 先后被破解。

所以NIST后来又发布了SHA的另外三个变种,256/384/512,这三个函数都对应更长的消息摘要。2004 年 2 月,发布了对 FIPS PUB 180-2 的更改通知,增加了一个额外的变体 SHA-224",它被定义为符合双密钥 3DES 所需的密钥长度。这些算法标准之间的区别 基本结构除了生成的摘要的长度、循环运行的次数等方面存在一些细微差别外,大致相同。

哈希函数将消息压缩成摘要,使数据量更小,并固定数据的格式。此函数对数据进行混洗并重新创建称为哈希值的指纹。

哈希值通常由一串随机字母和数字组成。

对于任意长度的消息,SHA256 生成一个 256 位的哈希值,称为消息摘要比特币算法原理,可以用长度为 64 的十六进制字符串表示。

比特币算法源代码_比特币算法原理_比特币算法原理

(md5.cn在线测试区)

3.SHA256流程分析

对于任何长度的消息,SHA256 会生成一个 256 位的散列值,称为消息摘要。这个摘要相当于一个长度为 32 字节的数组,通常用长度为 64 的十六进制字符串表示,其中 1 字节 = 8 位,一个十六进制字符的长度为 4 位。

首先,您需要找到合适的加密工具。在网上搜了很多,搜索md5.cn就可以找到。

给个“栗子”:客家人

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

比特币算法原理_比特币算法源代码_比特币算法原理

这是一个在线加密链接以验证

总的来说,HSA256 的运算过程与 MD4、MD5 和 HSA-1 散列函数的运算过程类似。待散列的消息在继续散列计算之前必须先执行以下两个步骤:

对报文进行补码,最终长度为512位的倍数,然后将报文分成512位单元如下:

消息块被一个一个地处理:从一个固定的初始哈希开始,执行以下计算序列:

其中 C 是 SHA256 的压缩函数,+ 是 mod

比特币算法原理_比特币算法源代码_比特币算法原理

2^{32}

,即把两个数相加,如果是

2^{32}

拿剩下的,

H^{n}

是消息块的哈希。

算法详细说明

比特币算法源代码_比特币算法原理_比特币算法原理

SHA256压缩功能主要对一个512位的消息块和一个256位的中间散列值进行操作。本质上,它是一种 256 位加密算法,以消息块为密钥对中间散列值进行加密。因此比特币算法原理,为了描述 SHA256 算法,需要描述两个组件:

公式:

目前我对密码学和各种算法的了解还不够,因为我刚开始学习使用sha256,所以它只是一个简单的应用程序,可能与其他人的应用程序不同。

【实用程序免费使用】

免费MD5加解密:

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

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