[英]multiple-value “crypto/rand”.Int() in single-value context
我正在嘗試使用庫 crypto/rand 生成一個隨機數。 這個 function 的早期實現使用了 math/rand,但我需要使用 crypto/rand。 這是我下面的 function
func GenerateNum() (num string) {
num = fmt.Sprintf("02:fc:%02x:%02x:%02x:%02x", rand.Int(rand.Reader, big.NewInt(256)),
rand.Int(rand.Reader, big.NewInt(256)), rand.Int(rand.Reader, big.NewInt(256)),
rand.Int(rand.Reader, big.NewInt(256))
)
return
}
我對這種語言相當陌生,因此無法弄清楚應該做什么。
你可以做這樣的事情(雖然這可能不是最好的方法)
package main
import (
"crypto/rand"
"fmt"
"log"
"math/big"
)
func cryptoRandSecure() *big.Int {
nBig, err := rand.Int(rand.Reader, big.NewInt(256))
if err != nil {
log.Println(err)
}
return nBig
}
func GenerateNum() (num string) {
n1 := cryptoRandSecure()
n2 := cryptoRandSecure()
n3 := cryptoRandSecure()
n4 := cryptoRandSecure()
num = fmt.Sprintf("02:fc:%02x:%02x:%02x:%02x", n1, n2, n3, n4)
return
}
func main() {
num := GenerateNum()
fmt.Println(num)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.