// Copyright 2021 Tencent Inc. All rights reserved. package utils import ( "crypto/rand" ) const ( // NonceSymbols 随机字符串可用字符集 NonceSymbols = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" // NonceLength 随机字符串的长度 NonceLength = 32 ) // GenerateNonce 生成一个长度为 NonceLength 的随机字符串(只包含大小写字母与数字) func GenerateNonce() (string, error) { bytes := make([]byte, NonceLength) _, err := rand.Read(bytes) if err != nil { return "", err } symbolsByteLength := byte(len(NonceSymbols)) for i, b := range bytes { bytes[i] = NonceSymbols[b%symbolsByteLength] } return string(bytes), nil }