网络编程
位置:首页>> 网络编程>> Go语言>> Go语言常见哈希函数的使用

Go语言常见哈希函数的使用

作者:hebedich  发布时间:2024-02-04 16:09:23 

标签:Go,哈希

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", "采用的哈西函数: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)
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com