Generasi Int Rawak Selamat dengan "crypto/rand"
Dalam Go, menjana integer rawak selamat ialah tugas kritikal untuk pelbagai aplikasi kriptografi. Pakej "crypto/rand" menyediakan mekanisme untuk mencapainya dengan selamat.
Untuk menjana integer rawak antara 0 dan 27 menggunakan pakej "crypto/rand", anda boleh menggunakan fungsi berikut:
func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)
Fungsi ini memerlukan dua hujah:
Untuk menjana integer rawak antara 0 dan 27, gunakan yang berikut kod:
nBig, err := rand.Int(rand.Reader, big.NewInt(27)) if err != nil { panic(err) } n := nBig.Int64()
Penjanaan Token Kriptografi
Untuk menjana token selamat, pendekatan yang lebih baik melibatkan penggunaan pakej "pengekodan/base32" untuk menjana kepingan bait rawak dan tukarkannya kepada rentetan menggunakan pengekodan base32. Berikut ialah contoh:
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) }
Pendekatan ini dianggap selamat untuk menjana token kerana ia menggunakan penjana nombor rawak yang selamat secara kriptografi dan menukarkan hasilnya kepada rentetan menggunakan pengekodan base32, memastikan token output tidak dapat diramalkan dan sukar. untuk meneka.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Integer Rawak Selamat dan Token dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!