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

如何在Go中生成字符串的哈希数?

华泽语
2023-03-14
问题内容

例如:

hash("HelloWorld") = 1234567

有任何内置功能可以做到这一点吗?

谢谢。


问题答案:

该散包是这很有帮助。请注意,这是对特定哈希实现的抽象。在软件包子目录中可以找到一些现成的。

例:

package main

import (
        "fmt"
        "hash/fnv"
)

func hash(s string) uint32 {
        h := fnv.New32a()
        h.Write([]byte(s))
        return h.Sum32()
}

func main() {
        fmt.Println(hash("HelloWorld"))
        fmt.Println(hash("HelloWorld."))
}

(也在这里)

输出:

926844193
107706013


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

  • 问题内容: 我正在使用GoLang中的授权模块。在我们将PHP5与crypt函数一起使用之前。哈希生成类似于SHA-512: 并像这样存储在数据库中。但是现在我需要使其在GoLang中也能正常工作。我在Google上进行了搜索,并尝试了不同的方法,例如: 但是所有产生的东西都不一样。谁能进一步帮助我们? 我们要验证并创建类似php版本的哈希。 提前致谢。 问题答案: https://github.

  • 问题内容: 用Java编写的现有系统将字符串的哈希码用作其负载平衡的路由策略。 现在,我 无法修改系统, 但需要生成共享相同哈希码的字符串以测试最坏的情况。 我从命令行提供了这些字符串,并希望系统将所有这些字符串路由到同一目的地。 是否可以生成大量共享相同哈希码的字符串? 为了使这个问题更清楚: 备注:任何hashCode值都是可接受的。字符串是什么没有限制。但是它们应该彼此不同。 编辑:Stri

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

  • 问题内容: 有人可以给我展示一个如何使用Go 1 生成一个字符串的SHA哈希的工作示例吗? 文档页面缺少示例,我在Google上找不到任何有效的代码。 问题答案: 一个例子 : 在此示例中,我从字节数组进行着色。您可以使用以下方法获取字节数组 当然,如果不需要,您不需要在base64中进行编码:您可以使用Sum函数返回的原始字节数组。 下面的评论似乎有些混乱。因此,让我们为下一个用户阐明有关转换为

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