前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang语言情怀-第64期 Go 语言标准库翻译 crypto/rand

Golang语言情怀-第64期 Go 语言标准库翻译 crypto/rand

作者头像
李海彬
发布2021-03-09 11:04:38
5160
发布2021-03-09 11:04:38
举报
文章被收录于专栏:Golang语言社区

import "crypto/rand"

rand包实现了用于加解密的更安全的随机数生成器。

代码语言:javascript
复制
Variables
func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)
func Prime(rand io.Reader, bits int) (p *big.Int, err error)
func Read(b []byte) (n int, err error)

Variables

代码语言:javascript
复制
var Reader io.Reader

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

func Int

代码语言:javascript
复制
func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)返回一个在[0, max)区间服从均匀分布的随机值,如果max<=0则会panic。
func Prime 
func Prime(rand io.Reader, bits int) (p *big.Int, err error)

返回一个具有指定字位数的数字,该数字具有很高可能性是质数。如果从rand读取时出错,或者bits<2会返回错误。
func Read
func Read(b []byte) (n int, err error)

本函数是一个使用io.ReadFull调用Reader.Read的辅助性函数。当且仅当err == nil时,返回值n
代码语言:javascript
复制
 == len(b)。
代码语言:javascript
复制
代码语言:javascript
复制
package main

import (
    "bytes"
    "crypto/rand"
    "fmt"
)

func main() {
    c := 10
    b := make([]byte, c)
    _, err := rand.Read(b)
    if err != nil {
        fmt.Println("error:", err)
        return
    }
    // The slice should now contain random bytes instead of only zeroes.
    fmt.Println(bytes.Equal(b, make([]byte, c)))

}
代码语言:javascript
复制

参考资料:

Go语言中文文档

http://www.golang.ltd/

Go语言官方文档

https://golang.google.cn/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言情怀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Variables
  • func Int
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档