crypto/rand
[1]의 사용에 대한 약간의 예를 넣을 수 있습니까?이동 - 예 약 crypto/rand
함수 Read
에는 매개 변수로 바이트 배열이 있습니다. 왜? 임의의 데이터를 얻으려면 /dev/urandom에 액세스하십시오.
func Read(b []byte) (n int, err os.Error)
[1] http://golang.org/pkg/crypto/rand/
crypto/rand
[1]의 사용에 대한 약간의 예를 넣을 수 있습니까?이동 - 예 약 crypto/rand
함수 Read
에는 매개 변수로 바이트 배열이 있습니다. 왜? 임의의 데이터를 얻으려면 /dev/urandom에 액세스하십시오.
func Read(b []byte) (n int, err os.Error)
[1] http://golang.org/pkg/crypto/rand/
func Read(b []byte) (n int, err os.Error)
Read
는 Reader.Read
도우미를 호출하는 함수이다. Reader
은 var Reader io.Reader
으로 정의됩니다.
io.Reader
Read
방법을 래핑하는 인터페이스이다.
Read
최대 len(p)
바이트를 p
으로 읽습니다. 읽은 바이트 수 (0 <= n <= len(p)
)와 발생한 오류를 반환합니다. Read
이 n < len(p)
을 반환하더라도 통화 중에는 p
을 모두 스크래치 공간으로 사용할 수 있습니다. 일부 데이터를 사용할 수 있지만 len(p)
바이트가 아니면 Read
은 더 이상 대기하지 않고 사용할 수있는 데이터를 반환합니다.
입력 스트림의 끝에서 Read
은 0, os.EOF
을 반환합니다. Read
은 0이 아닌 수의 바이트를 오류로 반환 할 수 있습니다. 특히 Read
이 입력을 소모하면 n>0, os.EOF
이 반환 될 수 있습니다. 패키지 init()
함수를 사용하는 /dev/urandom
crypto/rand
기본값을 사용하여 임의의 처음 16 바이트를 판독하는
type Reader interface {
Read(p []byte) (n int, err os.Error)
}
예
,
package main
import (
"fmt"
"crypto/rand"
)
func main() {
b := make([]byte, 16)
n, err := rand.Read(b)
fmt.Println(n, err, b)
}
.
// Easy implementation: read from /dev/urandom.
// This is sufficient on Linux, OS X, and FreeBSD.
func init() { Reader = &devReader{name: "/dev/urandom"} }
당신은 *에 액세스 할 수는/dev/urandom을 * 그것은') (초기화하기 '에 정의되어 있기 때문에, 그러나에'(*는/dev/임의 * 사용) newReader' 때문에 그것은 unexported. – user316368
newReader 및 devReader는 효과적으로 내보내지지 않으므로/dev/urandom이 항상 사용됩니다. – peterSO