Maison > développement back-end > Golang > Comment générer des entiers aléatoires sécurisés avec le package « crypto/rand » ?

Comment générer des entiers aléatoires sécurisés avec le package « crypto/rand » ?

Patricia Arquette
Libérer: 2024-11-14 11:44:02
original
524 Les gens l'ont consulté

How to Generate Secure Random Integers with the

Génération d'entiers aléatoires sécurisés avec le package "crypto/rand"

Pour générer en toute sécurité un entier aléatoire compris entre 0 et 27 à l'aide du package "crypto/rand" /rand", vous pouvez utiliser la fonction suivante :

func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)
Copier après la connexion

Cette fonction renvoie un pointeur vers un big.Int qui représente l'entier généré aléatoirement, et elle prend un io.Reader (dans ce cas, rand .Reader) et un big.Int qui spécifie la valeur maximale.

Voici comment utiliser cette fonction pour générer un entier aléatoire entre 0 et 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)
}
Copier après la connexion

Vous ne le faites pas recevez directement un entier go car le package "crypto/rand" utilise un type big.Int pour représenter des entiers de précision arbitraire, ce qui est plus flexible pour divers scénarios.

Pour générer des jetons sécurisés, vous pouvez utiliser un similaire approche en générant un tableau aléatoire d'octets et en le codant à l'aide d'un schéma de codage approprié (tel que Base64 ou Base32) pour traduire les octets en une chaîne de jetons.

Par exemple, l'extrait de code que vous avez fourni (getToken) montre comment générer un jeton sécurisé en utilisant cette approche.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal