雜湊 (Hash) 是現在很常見的應用,可以用來驗證檔案的正確性、加密等。
我們先來看看 An Introduction to Programming in Go 上的範例
package main
import (
"fmt"
"hash/crc32"
"crypto/sha1"
)
func main() {
h := crc32.NewIEEE()
h.Write([]byte("test"))
v := h.Sum32()
fmt.Println(v)
h := sha1.New()
h.Write([]byte("test"))
bs := h.Sum([]byte{})
fmt.Println(bs)
}
這邊簡單舉了一般的 Hash 跟 Crypto 的函式用法,當然還有很多種類可以自己看。
這 邊 crc32 的部份用 NewIEEE 方法來建立 checksum ,然後利用 write 這個內建的 interface 來寫入要算的值, 這時候 h 已經是我們要的 Hash 值了,後面這邊在利用 sum32 來返回成我們可以閱讀的 uint32 的值。
sha1 的部份基本上很類似,應該不用多說,馬上可以看懂
詳細請參考
https://golang.org/pkg/hash/
https://golang.org/pkg/crypto/