sha256算法
文章目錄
- 前言
- 一、sha256是什么?
- 二、go語言實現(xiàn)
前言
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、sha256是什么?
SHA256是SHA-2下細分出的一種算法
SHA-2,名稱來自于安全散列算法2(英語:Secure Hash Algorithm 2)的縮寫,一種密碼散列函數(shù)算法標(biāo)準(zhǔn),由美國國家安全局研發(fā),屬于SHA算法之一,是SHA-1的后繼者。
SHA-2下又可再分為六個不同的算法標(biāo)準(zhǔn)
包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
這些變體除了生成摘要的長度 、循環(huán)運行的次數(shù)等一些微小差異外,算法的基本結(jié)構(gòu)是一致的。
回到SHA256上,說白了,它就是一個哈希函數(shù)。
哈希函數(shù),又稱散列算法,是一種從任何一種數(shù)據(jù)中創(chuàng)建小的數(shù)字“指紋”的方法。散列函數(shù)把消息或數(shù)據(jù)壓縮成摘要,使得數(shù)據(jù)量變小,將數(shù)據(jù)的格式固定下來。該函數(shù)將數(shù)據(jù)打亂混合,重新創(chuàng)建一個叫做散列值(或哈希值)的指紋。散列值通常用一個短的隨機字母和數(shù)字組成的字符串來代表。
對于任意長度的消息,SHA256都會產(chǎn)生一個256bit長的哈希值,稱作消息摘要。
二、go語言實現(xiàn)
package mainimport ("crypto/sha256""fmt" )/* go語言sha256包中實現(xiàn)了兩種哈希函數(shù),分別是sha256hesha224 */func main() {hash := sha256.New()hash.Write([]byte("hello world!"))result := hash.Sum(nil)fmt.Printf("%x\n", result) }總結(jié)
- 上一篇: spring----06 更多DI知识
- 下一篇: BZOJ4293 Siano