gpt4 book ai didi

hash - 哈希任意对象的正确方法

转载 作者:IT王子 更新时间:2023-10-29 01:27:23 26 4
gpt4 key购买 nike

我正在编写一个需要散列任意对象的数据结构。如果我给 int 参数,则以下函数似乎会失败。

func Hash( obj interface{} ) []byte {
digest := md5.New()
if err := binary.Write(digest, binary.LittleEndian, obj); err != nil {
panic(err)
}
return digest.Sum()
}

int 上调用它会导致:

panic: binary.Write: invalid type int

正确的做法是什么?

最佳答案

我发现执行此操作的一个好方法是使用“gob”包序列化对象,如下所示:

var (
digest = md5.New()
encoder = gob.NewEncoder(digest)
)

func Hash(obj interface{}) []byte {
digest.Reset()
if err := encoder.Encode(obj); err != nil {
panic(err)
}
return digest.Sum()
}

编辑:这没有按预期工作(见下文)。

关于hash - 哈希任意对象的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5761014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com