Go語(yǔ)言常見(jiàn)哈希函數(shù)的使用
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" //命令行選項(xiàng)解析器 "fmt" "hash" "io" "os" ) var style = flag.String("s", "sha256", "采用的哈西函數(shù):sha1,sha256") var filename = flag.String("f", "", "需要計(jì)算散列值的文件名") 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) }
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
Golang反射獲取結(jié)構(gòu)體的值和修改值的代碼示例
這篇文章主要給大家介紹了golang反射獲取結(jié)構(gòu)體的值和修改值的代碼示例及演示效果,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,感興趣的同學(xué)可以參考閱讀本文2023-08-08GO語(yǔ)言中創(chuàng)建切片的三種實(shí)現(xiàn)方式
這篇文章主要介紹了GO語(yǔ)言中創(chuàng)建切片的三種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09golang并發(fā)執(zhí)行的幾種方式小結(jié)
本文主要介紹了golang并發(fā)執(zhí)行的幾種方式小結(jié),主要包括了Channel,WaitGroup ,Context,使用這三種機(jī)制中的一種或者多種可以達(dá)到并發(fā)控制很好的效果,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08golang使用grpc+go-kit模擬oauth認(rèn)證的操作
這篇文章主要介紹了golang使用grpc+go-kit模擬oauth認(rèn)證的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04Golang學(xué)習(xí)筆記之延遲函數(shù)(defer)的使用小結(jié)
這篇文章主要介紹了Golang學(xué)習(xí)筆記之延遲函數(shù)(defer),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Go 語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之雙鏈表學(xué)習(xí)教程
這篇文章主要為大家介紹了Go 語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之雙鏈表學(xué)習(xí)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08詳解Golang中errors包如何返回自定義error類(lèi)型
這篇文章主要為大家詳細(xì)介紹了Golang中errors包如何返回自定義error類(lèi)型,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09