34 lines
627 B
Go
34 lines
627 B
Go
package main
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"encoding/binary"
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
testRandom("crypto/rand", rand.Reader)
|
|
testRandom("dev/random", newDevRandom())
|
|
}
|
|
|
|
func newDevRandom() (f *os.File) {
|
|
var err error
|
|
if f, err = os.Open("/dev/random"); err != nil {
|
|
panic(err)
|
|
}
|
|
return
|
|
}
|
|
|
|
func testRandom(label string, src io.Reader) {
|
|
fmt.Printf("%s:\n", label)
|
|
var r int32
|
|
for i := 0; i < 10; i++ {
|
|
if err := binary.Read(src, binary.LittleEndian, &r); err != nil {
|
|
panic(err)
|
|
}
|
|
fmt.Print(r, " ")
|
|
}
|
|
fmt.Println()
|
|
}
|