12345678910111213141516171819202122232425262728 |
- // 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
- }
|