package utils import ( "crypto/md5" "fmt" "math/rand" "time" ) const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" func GenerateInviteCode(userID uint) string { rand.Seed(time.Now().UnixNano()) // 拼接用户ID和随机数 data := fmt.Sprintf("%d%d", userID, rand.Intn(1000000)) hash := md5.Sum([]byte(data)) code := "" for i := 0; i < 6; i++ { // 取哈希的前6位,每位映射到字符集 code += string(charset[int(hash[i])%len(charset)]) } return code }