Go语言常见哈希函数的使用
myhash.go
/** *CreatedwithIntelliJIDEA. *User:liaojie *Date:12-9-8 *Time:下午3:53 *TochangethistemplateuseFile|Settings|FileTemplates. */ packagemain import( "crypto/md5" "crypto/sha1" "crypto/sha256" "crypto/sha512" "flag"//命令行选项解析器 "fmt" "hash" "io" "os" ) varstyle=flag.String("s","sha256","采用的哈西函数:sha1,sha256") varfilename=flag.String("f","","需要计算散列值的文件名") funcmain(){ flag.Parse() varhshash.Hash switch*style{ case"md5": hs=md5.New() case"sha1": hs=sha1.New() case"sha512": hs=sha512.New() default: hs=sha256.New() } iflen(*filename)==0{ filein,err:=os.Open(flag.Args()[len(flag.Args())-1]) iferr!=nil{ return }else{ io.Copy(hs,filein) } }else{ filein,err:=os.Open(*filename) iferr!=nil{ return }else{ io.Copy(hs,filein) } } hashString:=hs.Sum(nil) fmt.Printf("%x\n",hashString) }
以上所述就是本文的全部内容了,希望大家能够喜欢。