## 關于SHA256的心得理解
- 1. 哈希演算法的分類
- 2. 什么是SHA256演算法
- 3. SHA256演算法流程
- 4. 總結
最近在整理一些關于加密的常用演算法,雖然都是比較成熟的東西了,但是很多的流程不是很便于理解,于是整理成了一系列檔案,和大家一起分享,希望大家理性討論,喜歡的點點贊啊!!!啾咪!!!
1. 哈希演算法的分類
2. 什么是SHA256演算法
3. SHA256演算法流程
4. 總結
1. 哈希演算法的分類
簡單來說,哈希演算法主要分為以下幾類:CRC,MD,SHA,Blake

2.什么是哈希演算法
SHA256是SHA-2下細分出的一種演算法,SHA-2,名稱來自于安全散列演算法2(英語:Secure Hash Algorithm 2)的縮寫,一種密碼散列函式演算法標準,對于任意長度的訊息,SHA256都會產生一個256位長的哈希值,稱作訊息摘要,

這樣的函式是最常用于數字簽名和密碼保護中
3. 哈希演算法流程
哈希演算法的流程主要包括四個部分:
3.1.常量初始化
3.2. 資訊預處理
3.3. 邏輯運算公式
3.4. 計算得到資訊摘要
3.1.常量初始化:
常量初始化主要包括兩個部分,分別是8個哈希初值H(0)—H(7),64個哈希常量K(1)—K(64),
其中哈希初值是對自然數中前8個質數(2,3,5,7,11,13,17,19)的平方根的小數部分取前32bit而來,
如:√2的小數部分約 0.414213562373095048
0.414213562373095048 = 0x6a09e667(十六進制,取前32位)
其中哈希常量64個常量,對自然數中前64個質數(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97…)的立方根的小數部分取前32bit而來,
在這一部分,網上的其他大佬已經說的足夠清晰了,在此不做贅述,
3.2. 資訊預處理
在這里,話不多說,讓你用一張圖搞懂!

記住這里的M,后面會用到,
3.3. 邏輯運算公式

這些公式,記住他們,待會會用到的!
3.4. 計算得到資訊摘要

SHA256的本質就是通過該演算法,把輸入資料變成一個親媽都不認識的輸出,其中M(i)就是資訊預處理得到的結果,當i=0時,H0(0)…H0(7)即為哈希初值,

定義a…g八個中間變數,后面會用到的;

這個就是計算的核心步驟了,主要是**W(j)**的構建,在程式中,這一步驟也是很容易實作的,
其中各個部分的計算是怎么來的呢?請參考3.3的邏輯運算公式,
需要注意的是:每得到一組新的a…g都要經過64輪的計算

最后就是不斷重復這一程序,直至計算出最后的資訊摘要,
其中N的大小,和M(i)中,i的大小相關,即“分塊”分的越多,N越大,
4. 總結
SHA256是一種常見的加密演算法,安全性高,廣泛應用于數字簽名和密碼加密
SHA256演算法較為成熟,可實作性高
第一次寫文章,大家多多關照!!!
評論區歡迎大家理性討論!!!
因為鄙人和單片機啊、嵌入式啊打交道多一點,后續可能還會分享一些其他的加密,簽名以及在單片機上實作的文章,
關注我!!!點點贊!!!點贊超過15個,第二天就更新!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/276251.html
標籤:區塊鏈
上一篇:以太坊基礎環境搭建(1)
