登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-04-01 17:13:38 400浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《使用 golang 生成字符串的 SHA 哈希》,主要内容是讲解golang等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

有人可以向我展示一个工作示例,说明如何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))
        ...
}

在这个例子中,我从一个字节数组中创建了一个 sha。您可以使用获取字节数组

bv := []byte(myPassword) 

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

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

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

以上就是《使用 golang 生成字符串的 SHA 哈希》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>