Heim > Artikel > Backend-Entwicklung > Wie generiert man sichere Zufallszahlen mit dem Paket „crypto/rand'?
Generieren sicherer zufälliger Ganzzahlen mit dem Paket „crypto/rand“
Um sicher eine zufällige Ganzzahl zwischen 0 und 27 mit dem Paket „crypto /rand“-Paket können Sie die folgende Funktion verwenden:
func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)
Diese Funktion gibt einen Zeiger auf a zurück big.Int, das die zufällig generierte Ganzzahl darstellt, und es benötigt einen io.Reader (in diesem Fall rand.Reader) und einen big.Int, der den Maximalwert angibt.
So können Sie diese Funktion verwenden Generieren Sie eine zufällige Ganzzahl zwischen 0 und 27:
package main import ( "fmt" "crypto/rand" "math/big" ) func main() { nBig, err := rand.Int(rand.Reader, big.NewInt(27)) if err != nil { panic(err) } n := nBig.Int64() fmt.Printf("Here is a random int in [0,27): %d\n", n) }
Sie erhalten nicht direkt eine Go-Ganzzahl, da das Paket „crypto/rand“ einen big.Int-Typ verwendet um Ganzzahlen mit beliebiger Genauigkeit darzustellen, was für verschiedene Szenarien flexibler ist.
Um sichere Token zu generieren, können Sie einen ähnlichen Ansatz verwenden, indem Sie ein zufälliges Array von Bytes generieren und es mit einem geeigneten Codierungsschema (z. B Base64 oder Base32), um die Bytes in eine Zeichenfolge von Token zu übersetzen.
Der von Ihnen bereitgestellte Codeausschnitt (getToken) zeigt beispielsweise, wie Sie mit diesem Ansatz ein sicheres Token generieren.
Das obige ist der detaillierte Inhalt vonWie generiert man sichere Zufallszahlen mit dem Paket „crypto/rand'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!