美文网首页
gobyexample-sha1-hashes

gobyexample-sha1-hashes

作者: bocsoft | 来源:发表于2018-11-07 09:17 被阅读0次

    来源:https://github.com/xg-wang/gobyexample/tree/master/examples

    //[_ SHA1 散列_]经常用于生成二进制文件或者文本块的短标识。例如,[git 版本控制系统]
    //大量的使用SHA1来标识受版本控制的文件或目录。这里是GO中如何进行SHA1散列计算的例子
    package main
    
    //Go 在多个`crypto/*`包中实现了一系列散列函数
    import (
        "crypto/sha1"
        "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)
    
        //可以使用和上面相似的方式来计算其他形式的散列值.例如,计算MD5散列,引入`crypto/md5`并使用`md5.New()`方法
    }
    
    

    输出结果:

    sha1 this string
    cf23df2207d99a74fbe169e3eba035e633b65d94
    
    

    相关文章

      网友评论

          本文标题:gobyexample-sha1-hashes

          本文链接:https://www.haomeiwen.com/subject/ycjmxqtx.html