56-SHA1-hashes

// SHA1哈希经常用于计算二进制或者文本blob的短标识,
// 例如Git就使用SHA1来标识版本化的文件和目录。

package main

import (
	"crypto/sha1"
	"fmt"
)

func main() {
	s := "sha1 this string"
	// 生成散列的模式是:
	//  1. sha1.New()
	// 	2. sha1.Write(bytes)
	//  3. sha1.Sum([]byte{})
	h := sha1.New()
	h.Write([]byte(s)) //将字符串强制类型转换为字节,[]byte(s),其中s为字符串

	// 将最终的哈希结果作为字节切片
	// 可以将Sum()方法的参数添加到一个已经存在的字节切片中,通常不需要使用它
	bs := h.Sum(nil)

	// SHA1的值通常以十六进制的形式打印出来
	// 使用%x格式化谓词将哈希的结果转换为十六进制的字符串
	fmt.Println(s)
	fmt.Printf("%x\n", bs)
}

// 还有其他的计算哈希的方式,如MD5哈希,
// 导入crypto/md5包,然后使用md5.New()

// 如果需要加密安全的hash那就要仔细研究一下哈希强度了
上次修改: 10 January 2020