前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang语言情怀-第67期 Go 语言标准库翻译 crypto/sha1

Golang语言情怀-第67期 Go 语言标准库翻译 crypto/sha1

作者头像
李海彬
发布2021-03-09 11:05:57
3870
发布2021-03-09 11:05:57
举报
文章被收录于专栏:Golang语言社区Golang语言社区

import "crypto/sha1"

sha1包实现了SHA1哈希算法

代码语言:javascript
复制
Constants
func Sum(data []byte) [Size]byte
func New() hash.Hash
  • New
  • Sum

Constants

代码语言:javascript
复制
const BlockSize = 64

SHA1的块大小。

代码语言:javascript
复制
const Size = 20

SHA1校验和的字节数。

func New

代码语言:javascript
复制
func New() hash.Hash

返回一个新的使用SHA1校验的hash.Hash接口。

代码语言:javascript
复制
package main

import (
    "crypto/sha1"
    "fmt"
    "io"
)

func main() {
    h := sha1.New()
    io.WriteString(h, "His money is twice tainted:")
    io.WriteString(h, " 'taint yours and 'taint mine.")
    fmt.Printf("% x", h.Sum(nil))
}
代码语言:javascript
复制
package main

import (
    "crypto/sha1"
    "fmt"
    "io"
    "log"
    "os"
)

func main() {
    f, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer f.Close()

    h := sha1.New()
    if _, err := io.Copy(h, f); err != nil {
        log.Fatal(err)
    }

    fmt.Printf("% x", h.Sum(nil))
}

func Sum

代码语言:javascript
复制
func Sum(data []byte) [Size]byte

返回数据data的SHA1校验和。

代码语言:javascript
复制
package main

import (
    "crypto/sha1"
    "fmt"
)

func main() {
    data := []byte("This page intentionally left blank.")
    fmt.Printf("% x", sha1.Sum(data))
}

Go语言对字符串进行SHA1哈希运算的方法

代码语言:javascript
复制
package main
import (
 "fmt"
 "crypto/md5"
 "crypto/sha1"
 "io"
)
//对字符串进行MD5哈希
func a(data string) string {
 t := md5.New();
 io.WriteString(t,data);
 return fmt.Sprintf("%x",t.Sum(nil));
}
//对字符串进行SHA1哈希
func b(data string) string {
 t := sha1.New();
 io.WriteString(t,data);
 return fmt.Sprintf("%x",t.Sum(nil));
}
func main(){
 var data string = "abc";
 fmt.Printf("MD5 : %s\n",a(data));
 fmt.Printf("SHA1 : %s\n",b(data));
}

输出结果如下:

代码语言:javascript
复制
D:\workspace\golang>GetMd5AndSha1.exe
MD5 : 900150983cd24fb0d6963f7d28e17f72
SHA1 : a9993e364706816aba3e25717850c26c9cd0d89d

参考资料:

Go语言中文文档

http://www.golang.ltd/

Go语言官方文档

https://golang.google.cn/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言情怀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Constants
  • func New
  • func Sum
  • Go语言对字符串进行SHA1哈希运算的方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档