Go语言 crypto/rand 随机数生成方法研究草稿
2022-9-30
| 2023-3-23
0  |  阅读时长 0 分钟
Created time
Sep 30, 2022 04:02 PM
date
status
category
Origin
summary
tags
type
URL
icon
password
slug
package rand 实现了用于加解密的更安全的随机数生成器。

Variables

Reader是一个全局、共享的密码用强随机数生成器。在Unix类型系统中,会从/dev/urandom读取;而Windows中会调用CryptGenRandom API

func Int

返回一个在[0, max)区间服从均匀分布的随机值,如果max<=0则会panic。

func Prime

返回一个具有指定字位数的数字,该数字具有很高可能性是质数。如果从rand读取时出错,或者bits<2会返回错误。
如果位数小于2的话,会报错:

func Read

本函数是一个使用io.ReadFull调用Reader.Read的辅助性函数。当且仅当err == nil时,返回值n == len(b)
因为本函数是一个使用io.ReadFull调用Reader.Read的辅助性函数,所以最上面的那个生成session ID的例子等价于:

Read Function

简单来说,它读出的数据,并不一定是指定长度的。

ReadFull Function

意思是读取正好len(buf)长度的字节。如果字节数不是指定长度,则返回错误信息和正确的字节数。当没有字节能被读时,返回EOF错误。如果读了一些,但是没读完产生EOF错误时,返回ErrUnexpectedEOF错误。

Reader interface

并发Goroutine&ChannelGo 语言数据库操作
Loading...