golang單向雜湊函式

2021-10-17 05:13:48 字數 931 閱讀 4984

稱謂: 單向雜湊函式, 雜湊函式, 雜湊函式, 訊息摘要函式

接收的輸入: 原像

輸出: 雜湊值, 雜湊值, 指紋, 摘要

將任意長度的資料轉換成固定長度的資料

很強的抗碰撞性

不可逆md4/md5

sha1

sha2 - 安全

sha256

sha384

sha512

// 第一種方式, 直接呼叫sum

// 適用於資料量比較小的情況

func sum(data byte) [size]byte

// 第二種方式

// 1. 建立雜湊介面物件

func new() hash.hash

type hash inte***ce

type writer inte***ce

// 2. 往建立出的雜湊物件中新增資料

hash.hash.write(byte("新增的資料..."))

hash.hash.write(byte("新增的資料..."))

hash.hash.write(byte("新增的資料..."))

hash.hash.write(byte("新增的資料..."))

// 3. 計算結果, md5就是雜湊值

md5 := hash.sum(nil);

// 雜湊值一般是乙個二進位制的字串, 有些字元不可見, 需要格式化

// 格式化為16進製制的數字串 - 0-9, a-f

func encodetostring(src byte) string

// 資料轉換完成之後, 長度是原來的2倍

//驗證

myhash()

// 使用sha256

func myhash()

單向雜湊函式

在介紹單向雜湊函式之前,我們先了解一下什麼情況下需要使用到單向雜湊函式。單向雜湊函式有乙個輸入和輸出。輸入稱為訊息,輸出稱為雜湊值。雜湊值的長度跟訊息的長度無關,不論多少大小的長度的訊息,都會計算出固定長度的雜湊值。單向雜湊函式具有下面幾個特性 能夠根據任意長度的訊息計算出固定長度的雜湊值。計算速度...

單向雜湊函式

在介紹單向雜湊函式之前,我們先了解一下什麼情況下需要使用到單向雜湊函式。單向雜湊函式有乙個輸入和輸出。輸入稱為訊息,輸出稱為雜湊值。雜湊值的長度跟訊息的長度無關,不論多少大小的長度的訊息,都會計算出固定長度的雜湊值。單向雜湊函式具有下面幾個特性 能夠根據任意長度的訊息計算出固定長度的雜湊值。計算速度...

單向雜湊函式

之前討論的問題是 資訊保密。通過加密的方式 有時候,我們可能不需要對資訊保密,而是希望接收者能夠驗證在傳遞過程中的訊息有沒被修改,即入侵者不能用假訊息代替合法訊息。資料完整性 乙個生活中的問題 如何識別某個人的身份?身份證 指紋。對應的,我們有資料指紋。那麼乙個指紋函式需要滿足什麼條件?指紋能處理不...