在 golang 中解码 fnv128 哈希

decode fnv128 hash in golang

我有一些值存储为 128 位 FNV-1a 哈希值,我想对其进行“解码”。据我了解,虽然大多数哈希都是单向的,但 FNV 不是加密哈希。是否可以“解码”我自己创​​建的 FNV 哈希?我正在使用 golang,下面是哈希示例。

value, err := json.Marshal("hello world")
if err != nil {
    fmt.Println(err)
}

fnv128 := fnv.New128a()
_, err = fnv128.Write(value)
if err != nil {
    fmt.Println(err)
}
hash := fnv128.Sum([]byte{})

// given the hash above, find the value "hello world"

您不能“解码”散列,因为散列不是一种编码,它是一种单向转换。仅仅因为这个散列不被认为是加密安全的并不意味着你可以逆转它。

您的选择是暴力搜索,可行性取决于您需要搜索匹配输入的总数space。