package utils import ( "crypto/rand" "fmt" "math/big" "strings" ) // randomCharset 去掉了易混淆字符(0/O、1/l/I)。 const randomCharset = "abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789" // RandomString 生成指定长度的随机字符串。 func RandomString(length int) (string, error) { limit := big.NewInt(int64(len(randomCharset))) var builder strings.Builder builder.Grow(length) for i := 0; i < length; i++ { n, err := rand.Int(rand.Reader, limit) if err != nil { return "", fmt.Errorf("生成随机字符串失败: %w", err) } builder.WriteByte(randomCharset[n.Int64()]) } return builder.String(), nil }