Go - 如何组合多个字符串以输出一个独特的压缩'串?

时间:2016-04-05 13:53:33

标签: go ip

在Go中,我尝试将 IP地址用户名混合,以输出某种压缩的唯一字符串。

例如: "MyUsername" + "192.354.32.245" = "JDU7DNd"

1 个答案:

答案 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)。