Golang crypto.rand 包详解
crypto/rand
包提供了一个密码安全的随机数生成器。这个包主要提供了两个函数:Reader
和 Int
。
Reader
函数:这个函数返回一个io.Reader
,它是一个密码安全的随机数生成器。你可以用它来填充实现密码安全的随机数。
import (
"crypto/rand"
"io"
"log"
)
func main() {
// 创建一个buffer来存储随机数
byteBuffer := make([]byte, 10)
// 使用Reader来填充buffer
_, err := io.ReadFull(rand.Reader, byteBuffer)
if err != nil {
log.Fatal(err)
}
// 打印出buffer的内容
fmt.Printf("%x\n", byteBuffer)
}
Int
函数:这个函数返回一个介于0到n之间的随机整数。
import (
"crypto/rand"
"fmt"
"math/big"
)
func main() {
// 创建一个big.Int来保存随机生成的整数
randomInt, err := rand.Int(rand.Reader, big.NewInt(100))
if err != nil {
fmt.Print(err)
return
}
// 打印出随机生成的整数
fmt.Printf("Random Integer: %d\n", randomInt)
}
这两个函数都是密码学安全的,所以在需要生成密码学安全随机数的场景下,可以使用这个包。
评论已关闭