Go - 关于加密货币/兰特的示例
可以举一个关于使用 crypto/rand
[1] 的小例子吗?
函数Read
将字节数组作为参数。为什么?如果访问/dev/urandom来获取随机数据。
func Read(b []byte) (n int, err os.Error)
Could put a little example about the use of crypto/rand
[1]?
The function Read
has as parameter an array of bytes. Why? If it access to /dev/urandom to get the random data.
func Read(b []byte) (n int, err os.Error)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Read
是一个调用Reader.Read
的辅助函数。Reader
定义为:var Reader io.Reader
。crypto/rand/
io.Reader
是包装基本的Read
方法。Read
将最多len(p)
个字节读取到p
中。它返回读取的字节数 (0 <= n <= len(p)
) 以及遇到的任何错误。即使Read
返回n
n
len(p)
,它可能会在调用期间使用所有p
作为暂存空间。如果某些数据可用,但不是len(p)
字节,则Read
通常会返回可用数据,而不是阻塞等待更多数据。在输入流末尾,
Read
返回0, os.EOF
。Read
可能会返回非零字节数并出现非nil
错误。特别地,耗尽输入的Read
可能返回n>n。0,os.EOF
。io/#Reader
例如,要读取前 16 个随机字节,
使用包
init()
函数,crypto/rand
默认使用/dev/urandom
。crypto/rand/rand.go
Read
is a helper function that callsReader.Read
.Reader
is defined as:var Reader io.Reader
.crypto/rand/
io.Reader
is the interface that wraps the basicRead
method.Read
reads up tolen(p)
bytes intop
. It returns the number of bytes read (0 <= n <= len(p)
) and any error encountered. Even ifRead
returnsn < len(p)
, it may use all ofp
as scratch space during the call. If some data is available but notlen(p)
bytes,Read
conventionally returns what is available rather than block waiting for more.At the end of the input stream,
Read
returns0, os.EOF
.Read
may return a non-zero number of bytes with a non-nil
err. In particular, aRead
that exhausts the input may return n >0, os.EOF
.io/#Reader
For example, to read the first 16 random bytes,
Using a package
init()
function,crypto/rand
defaults to using/dev/urandom
.crypto/rand/rand.go