doulu7258 2010-04-18 14:45
浏览 36
已采纳

Go-有关加密/兰特的示例

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)

[1] http://golang.org/pkg/crypto/rand/

  • 写回答

1条回答 默认 最新

  • dsxon40042 2010-04-18 17:05
    关注
    func Read(b []byte) (n int, err os.Error)
    

    Read is a helper function that calls Reader.Read. Reader is defined as: var Reader io.Reader.

    crypto/rand/

    io.Reader is the interface that wraps the basic Read method.

    Read reads up to len(p) bytes into p. It returns the number of bytes read (0 <= n <= len(p)) and any error encountered. Even if Read returns n < len(p), it may use all of p as scratch space during the call. If some data is available but not len(p) bytes, Read conventionally returns what is available rather than block waiting for more.

    At the end of the input stream, Read returns 0, os.EOF. Read may return a non-zero number of bytes with a non-nil err. In particular, a Read that exhausts the input may return n > 0, os.EOF.

    type Reader interface {
        Read(p []byte) (n int, err os.Error)
    }
    

    io/#Reader

    For example, to read the first 16 random bytes,

    package main
    
    import (
        "fmt"
        "crypto/rand"
    )
    
    func main() {
        b := make([]byte, 16)
        n, err := rand.Read(b)
        fmt.Println(n, err, b)
    }
    

    Using a package init() function, crypto/rand defaults to using /dev/urandom.

    // Easy implementation: read from /dev/urandom.
    // This is sufficient on Linux, OS X, and FreeBSD.
    func init() { Reader = &devReader{name: "/dev/urandom"} }
    

    crypto/rand/rand.go

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看