package utils import ( "crypto/rand" "math/big" ) // GenerateCode 生成指定长度的随机邀请码(大写字母+数字) // 不会返回错误,如果随机失败,会自动重试 func GenerateCode(length int) string { const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" code := make([]byte, length) for i := 0; i < length; i++ { for { num, err := rand.Int(rand.Reader, big.NewInt(int64(len(charset)))) if err != nil { // 随机失败,重试 continue } code[i] = charset[num.Int64()] break } } return string(code) }