Go語言常見哈希函數(shù)的使用
更新時間:2015年03月20日 11:13:02 投稿:hebedich
哈希表(Hash table,也叫散列表),是根據(jù)關鍵碼值(Key value)而直接進行訪問的數(shù)據(jù)結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。具體的介紹網(wǎng)上有很詳細的描述,如閑聊哈希表 ,這里就不再累述了;
myhash.go
/** * Created with IntelliJ IDEA. * User: liaojie * Date: 12-9-8 * Time: 下午3:53 * To change this template use File | Settings | File Templates. */ package main import ( "crypto/md5" "crypto/sha1" "crypto/sha256" "crypto/sha512" "flag" //命令行選項解析器 "fmt" "hash" "io" "os" ) var style = flag.String("s", "sha256", "采用的哈西函數(shù):sha1,sha256") var filename = flag.String("f", "", "需要計算散列值的文件名") func main() { flag.Parse() var hs hash.Hash switch *style { case "md5": hs = md5.New() case "sha1": hs = sha1.New() case "sha512": hs = sha512.New() default: hs = sha256.New() } if len(*filename) == 0 { filein, err := os.Open(flag.Args()[len(flag.Args())-1]) if err != nil { return } else { io.Copy(hs, filein) } } else { filein, err := os.Open(*filename) if err != nil { return } else { io.Copy(hs, filein) } } hashString := hs.Sum(nil) fmt.Printf("%x\n", hashString) }
以上所述就是本文的全部內容了,希望大家能夠喜歡。
相關文章
GO語言中創(chuàng)建切片的三種實現(xiàn)方式
這篇文章主要介紹了GO語言中創(chuàng)建切片的三種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09golang使用grpc+go-kit模擬oauth認證的操作
這篇文章主要介紹了golang使用grpc+go-kit模擬oauth認證的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04Golang學習筆記之延遲函數(shù)(defer)的使用小結
這篇文章主要介紹了Golang學習筆記之延遲函數(shù)(defer),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12詳解Golang中errors包如何返回自定義error類型
這篇文章主要為大家詳細介紹了Golang中errors包如何返回自定義error類型,文中的示例代碼簡潔易懂,有需要的小伙伴可以跟隨小編一起學習一下2023-09-09