当前位置: 首页 > 面试题库 >

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

柳宾实
2023-03-14
问题内容

有人可以给我展示一个如何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,它更紧凑


 类似资料:
  • 问题内容: 我有一个Java应用程序,我想在其中生成字符串的id(以便将这些字符串存储在neo4j中)。为了避免数据重复,我想为存储在整数中的每个字符串生成一个ID,该ID对于每个字符串都应该是唯一的。我怎样才能做到这一点 ? 问题答案: 有64位。长度为9的A 有72位。从鸽子洞的原理 -您不能得到9个字符长的字符串到的唯一哈希。 如果你仍然想一个哈希:你可以只取两个标准的哈希函数[不同!] ,

  • 问题内容: 现在,Amazon Product API在我尝试生成ushing Python的每个请求中都需要签名。 我挂断的步骤是这一步: “使用上面的字符串与我们的“虚拟”秘密访问密钥:1234567890,使用SHA256哈希算法计算符合RFC 2104的HMAC。有关此步骤的更多信息,请参见编程语言的文档和代码示例。” 给定字符串和私钥(在本例中为1234567890),如何使用Pytho

  • 我想生成一个固定长度的散列字符串。我正在为此使用MessageDigest API。我注意到API中的这个函数,但它返回的是整数而不是字节数组。 当我尝试使用此重载摘要方法时,我得到 java.security.DigestException:对于 SHA-256 摘要,长度必须至少为 32,或者输出缓冲区对于指定的偏移量和长度来说太小。 有人能举个例子来说明如何生成固定长度的哈希值吗?

  • 我试图从PEM字符串生成Golang中的私钥和公钥对象 这是我的PEM线 该pem。解码函数每次返回零我做错了什么?

  • 问题内容: 我需要将字符串转换为某种形式的哈希。这在JavaScript中可行吗? 我没有使用服务器端语言,所以我不能那样做。 问题答案: Object.defineProperty(String.prototype, ‘hashCode’, { value: function() { var hash = 0, i, chr; for (i = 0; i < this.length; i++)

  • 问题内容: 例如: 有任何内置功能可以做到这一点吗? 谢谢。 问题答案: 该散包是这很有帮助。请注意,这是对特定哈希实现的抽象。在软件包子目录中可以找到一些现成的。 例: (也在这里) 输出: