使用golang生成字符串的SHA哈希

有人可以给我展示一个如何myPassword := "beautiful"使用Go 1 生成一个字符串的SHA哈希的工作示例吗?

文档页面缺少示例,我在Google上找不到任何有效的代码。

回答:

一个例子 :

import (

"crypto/sha1"

"encoding/base64"

)

func (ms *MapServer) storee(bv []byte) {

hasher := sha1.New()

hasher.Write(bv)

sha := base64.URLEncoding.EncodeToString(hasher.Sum(nil))

...

}

在此示例中,我从字节数组进行着色。您可以使用以下方法获取字节数组

bv := []byte(myPassword)

当然,如果不需要,您不需要在base64中进行编码:您可以使用Sum函数返回的原始字节数组。

下面的评论似乎有些混乱。因此,让我们为下一个用户阐明有关转换为字符串的最佳做法:

  • 您永远不会将SHA作为字符串存储在数据库中,而作为原始字节存储
  • 当您想向用户显示SHA时,常见的方法是十六进制
  • 当您需要一个字符串表示形式(因为它必须适合URL或文件名)时,通常的解决方案是Base64,它更紧凑

以上是 使用golang生成字符串的SHA哈希 的全部内容, 来源链接: utcz.com/qa/421612.html

回到顶部