Go-如何组合多个字符串以输出唯一的';压缩';一串

Go-如何组合多个字符串以输出唯一的';压缩';一串,go,ip,Go,Ip,在Go中,我尝试将IP地址与用户名混合,以输出某种压缩的唯一字符串 例如:“MyUsername”+“192.354.32.245”=“JDU7DNd”可以为每个用户生成一个,该值将生成一个随机的128位值 但是,对于静态输出,我编写了一个函数,它将对多个字符串进行散列和求和,从而输出一个唯一的值 func Combine(string ...string) uint32 { h := fnv.New32a() for _, a := range string {

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

例如:
“MyUsername”+“192.354.32.245”=“JDU7DNd”

可以为每个用户生成一个,该值将生成一个随机的128位值

但是,对于静态输出,我编写了一个函数,它将对多个字符串进行散列和求和,从而输出一个唯一的值

func Combine(string ...string) uint32 {
    h := fnv.New32a()

    for _, a := range string {
        h.Write([]byte(a))
    }

    return h.Sum32()
}


贡献者: (fnv),(uuid)。

可以为每个用户生成一个,它将生成一个随机的128位值

但是,对于静态输出,我编写了一个函数,它将对多个字符串进行散列和求和,从而输出一个唯一的值

func Combine(string ...string) uint32 {
    h := fnv.New32a()

    for _, a := range string {
        h.Write([]byte(a))
    }

    return h.Sum32()
}


贡献者:
(fnv),(uuid)。

您是否考虑了压缩率?您想解决什么问题?尝试使用fnv创建哈希并通过base32编码。我正在尝试创建一个聊天室,我需要每个用户在选择用户名时都有一个唯一的id。我在学校计算机上发现,所有的IP都是相同的,所以如果我只使用IP地址作为id就不起作用了。为什么不为每个用户使用uuid呢?你有长度限制吗?你脑子里有压缩率吗?你想解决什么问题?试着用FNV创建一个散列,并通过base32编码。我试图建立一个聊天室,我需要每个用户在选择用户名时都有一个唯一的id。我在学校的电脑上发现,所有的IP都是相同的,所以如果我只使用IP地址作为id就不起作用了。为什么不为每个用户使用uuid呢?是否有长度约束?在循环外部创建fnv实例并在循环内部写入(),然后返回h.Sum32()-在循环外部创建fnv实例并在循环内部写入(),然后返回h.Sum32()-