Heim > Artikel > Backend-Entwicklung > Wie generiert man sichere zufällige Ganzzahlen und Token in Go?
Sichere zufällige Int-Generierung mit „crypto/rand“
In Go ist die Generierung sicherer zufälliger Ganzzahlen eine wichtige Aufgabe für verschiedene kryptografische Anwendungen. Das Paket „crypto/rand“ bietet einen Mechanismus, um dies sicher zu erreichen.
Um mit dem Paket „crypto/rand“ eine zufällige Ganzzahl zwischen 0 und 27 zu generieren, können Sie die folgende Funktion verwenden:
func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)
Diese Funktion erfordert zwei Argumente:
Um eine zufällige Ganzzahl zwischen 0 und 27 zu generieren, verwenden Sie den folgenden Code:
nBig, err := rand.Int(rand.Reader, big.NewInt(27)) if err != nil { panic(err) } n := nBig.Int64()
Kryptografische Token-Generierung
Um sichere Token zu generieren, besteht ein besserer Ansatz darin, das Paket „encoding/base32“ zu verwenden, um ein zufälliges Byte-Slice zu generieren und in dieses umzuwandeln eine Zeichenfolge mit Base32-Codierung. Hier ist ein Beispiel:
package main import ( "crypto/rand" "encoding/base32" "fmt" ) func main() { randomBytes := make([]byte, 32) _, err := rand.Read(randomBytes) if err != nil { panic(err) } token := base32.StdEncoding.EncodeToString(randomBytes)[:27] // Adjust length as needed fmt.Println("Here is a random token: ", token) }
Dieser Ansatz gilt als sicher für die Generierung von Token, da er einen kryptografisch sicheren Zufallszahlengenerator verwendet und das Ergebnis mithilfe der Base32-Codierung in eine Zeichenfolge konvertiert, wodurch sichergestellt wird, dass die Ausgabetoken unvorhersehbar und schwierig sind erraten.
Das obige ist der detaillierte Inhalt vonWie generiert man sichere zufällige Ganzzahlen und Token in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!