• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言教程:sha1散列/哈希

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

返回Go语言教程首页

概念简介

SHA1 散列经常用生成二进制文件或者文本块的短标识。例如,git 版本控制系统大量的使用 SHA1 来标识受版本控制的文件和目录。这里是Go语言中如何进行 SHA1 散列计算的例子。

例程代码


package main

// Go 在多个 `crypto/*` 包中实现了一系列散列函数。
import "crypto/sha1"
import "fmt"

func main() {
    s := "sha1 this string"

    // 产生一个散列值的方式是 `sha1.New()`,`sha1.Write(bytes)`,
    // 然后 `sha1.Sum([]byte{})`。这里我们从一个新的散列开始。
    h := sha1.New()

    // 写入要处理的字节。如果是一个字符串,需要使用
    // `[]byte(s)` 来强制转换成字节数组。
    h.Write([]byte(s))

    // 这个用来得到最终的散列值的字符切片。`Sum` 的参数可以
    // 用来给现有的字符切片追加额外的字节切片:一般不需要。
    bs := h.Sum(nil)

    // SHA1 值经常以 16 进制输出,例如在 git commit 中。使用
    // `%x` 来将散列结果格式化为 16 进制字符串。
    fmt.Println(s)
    fmt.Printf("%x\n", bs)
}

执行&输出


# 运行程序计算散列值并以可读 16 进制格式输出。
$ go run sha1-hashes.go
sha1 this string
cf23df2207d99a74fbe169e3eba035e633b65d94


# 你可以使用和上面相似的方式来计算其他形式的散列值。例
# 如,计算 MD5 散列,引入 `crypto/md5` 并使用 `md5.New()`
# 方法。

课程导航

学习上一篇:Go语言教程:URL解析    学习下一篇:Go语言教程:Base64编码

相关资料

注意,如果你需要密码学上的安全散列,你需要小心的研究一下
哈希强度。

本例程github源代码:https://github.com/xg-wang/gobyexample/tree/master/examples/sha1-hashes


鲜花

握手

雷人

路过

鸡蛋
专题导读
上一篇:
Go语言教程:数字解析发布时间:2022-05-14
下一篇:
Go语言教程:Base64编码发布时间:2022-05-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap