golang 生成随机数

2020-05-09  本文已影响0人  顶尖少爷

真随机和伪随机概念

先大概了解一下伪随机和真随机的概念。根据密码学原理,要想对一个“随机数”进行随机性检验有以下几个标准:

根据以上几个标准,其对应的随机数也就分为以下几类:

golang 实现伪随机

package main

import (
    "fmt"
    "math/rand"//伪随机
    "time"
)

func main() {
    // 随机种子
    rand.Seed(time.Now().Unix())
    // 生成 20 个 [0, 100) 范围的伪随机数。
    for i := 0; i < 20; i++ {
        result := rand.Intn(100)
        fmt.Println(result)
    }
}

golang 真随机实现

package main

import (
    "crypto/rand" //真随机
    "fmt"
    "math/big"
)

func main() {
    // 生成 20 个 [0, 100) 范围的真随机数。
    for i := 0; i < 20; i++ {
        result, _ := rand.Int(rand.Reader, big.NewInt(100))
        fmt.Println(result)
    }
}
上一篇下一篇

猜你喜欢

热点阅读