在Go中,我尝试将 IP地址与用户名混合,以输出某种压缩的唯一字符串。
例如: "MyUsername" + "192.354.32.245" = "JDU7DNd"
答案 0 :(得分:2)
可以为每个用户生成 UUID ,这将生成一个随机的128位值。
但是,对于静态输出,我编写了一个函数,它将对多个字符串进行散列和求和,这将输出一个唯一值。
func Combine(string ...string) uint32 {
h := fnv.New32a()
for _, a := range string {
h.Write([]byte(a))
}
return h.Sum32()
}
https://play.golang.org/p/W_6GUTRJ6b
提供者: Martin Gallagher(fnv),nevets(uuid)。