国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

Go語言常見哈希函數的使用

2020-04-01 19:15:20
字體:
來源:轉載
供稿:網友

哈希表(Hash table,也叫散列表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。具體的介紹網上有很詳細的描述,如閑聊哈希表 ,這里就不再累述了;

myhash.go

 

 
  1. /** 
  2. * Created with IntelliJ IDEA. 
  3. * User: liaojie 
  4. * Date: 12-9-8 
  5. * Time: 下午3:53 
  6. * To change this template use File | Settings | File Templates. 
  7. */ 
  8. package main 
  9. import ( 
  10. "crypto/md5" 
  11. "crypto/sha1" 
  12. "crypto/sha256" 
  13. "crypto/sha512" 
  14. "flag" //命令行選項解析器 
  15. "fmt" 
  16. "hash" 
  17. "io" 
  18. "os" 
  19. var style = flag.String("s""sha256""采用的哈西函數:sha1,sha256"
  20. var filename = flag.String("f""""需要計算散列值的文件名"
  21. func main() { 
  22. flag.Parse() 
  23. var hs hash.Hash 
  24. switch *style { 
  25. case "md5"
  26. hs = md5.New() 
  27. case "sha1"
  28. hs = sha1.New() 
  29. case "sha512"
  30. hs = sha512.New() 
  31. default
  32. hs = sha256.New() 
  33. if len(*filename) == 0 { 
  34. filein, err := os.Open(flag.Args()[len(flag.Args())-1]) 
  35. if err != nil { 
  36. return 
  37. else { 
  38. io.Copy(hs, filein) 
  39. else { 
  40. filein, err := os.Open(*filename) 
  41. if err != nil { 
  42. return 
  43. else { 
  44. io.Copy(hs, filein) 
  45. hashString := hs.Sum(nil) 
  46. fmt.Printf("%x/n", hashString) 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安康市| 乡宁县| 田东县| 开鲁县| 凉城县| 修武县| 潜山县| 东兰县| 黔江区| 黄陵县| 特克斯县| 宁都县| 钟祥市| 田林县| 临泉县| 读书| 习水县| 余庆县| 正镶白旗| 房山区| 文成县| 嘉峪关市| 江永县| 临漳县| 宜都市| 嘉黎县| 柏乡县| 玛纳斯县| 堆龙德庆县| 鄱阳县| 琼结县| 内乡县| 徐水县| 屯昌县| 宝鸡市| 苗栗市| 大安市| 德保县| 五指山市| 连南| 安阳市|