生成随机字符串
363字约1分钟
2025-02-03
这个程序定义了一个名为RandomString的函数,用于生成一个指定长度的随机字符串。函数首先定义了一个包含所有可能字符的字符串,然后使用crypto/rand包生成随机数,最后将这些随机数映射到相应的字符上,生成随机字符串。main函数中调用了RandomString函数,生成了三个不同长度的随机字符串并输出。
package main
import (
"crypto/rand" // 导入 crypto/rand 包,用于生成随机数
"fmt" // 导入 fmt 包,用于格式化输出
"math/big" // 导入 math/big 包,用于处理大整数
)
// RandomString 生成一个指定长度的随机字符串
func RandomString(length int) string {
const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+" // 定义一个包含所有可能字符的字符串
result := make([]byte, length) // 创建一个长度为 length 的字节切片
for i := range result {
val, _ := rand.Int(rand.Reader, big.NewInt(int64(len(chars)))) // 生成一个随机数,范围为 0 到 len(chars)-1
result[i] = chars[val.Int64()] // 将随机数映射到相应的字符上
}
return string(result) // 将字节切片转换为字符串并返回
}
func main() {
fmt.Println(RandomString(3)) // 生成一个长度为 3 的随机字符串并输出
fmt.Println(RandomString(10)) // 生成一个长度为 10 的随机字符串并输出
fmt.Println(RandomString(32)) // 生成一个长度为 32 的随机字符串并输出
}