Maison  >  Article  >  développement back-end  >  Comment générer des chaînes aléatoires uniques d’une longueur spécifique dans Golang ?

Comment générer des chaînes aléatoires uniques d’une longueur spécifique dans Golang ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 17:21:02850parcourir

How Do I Generate Unique Random Strings of a Specific Length in Golang?

Génération de chaînes aléatoires uniques dans une plage de longueurs à l'aide de Golang

Dans Golang, vous pouvez rencontrer des scénarios dans lesquels vous devez créer des chaînes aléatoires uniques dans une plage de longueur spécifique. Bien que le terme « unique » puisse avoir diverses interprétations, nous examinerons les stratégies permettant de générer des chaînes aléatoires avec des propriétés spécifiques.

Universellement unique

Si vous avez besoin d'identifiants globalement uniques , envisagez d'utiliser des identifiants universels uniques (UUID). Les UUID sont des valeurs de 128 bits qui peuvent être affichées au format hexadécimal, ce qui donne une chaîne de 32 caractères. Vous pouvez trouver plus d'informations et de détails de mise en œuvre sur les UUID en Golang ici : https://en.wikipedia.org/wiki/Universally_unique_identifier

Encodage de caractères

En Golang, les chaînes sont codées en UTF-8, ce qui signifie que chaque caractère peut occuper plusieurs octets en mémoire. Si vous avez besoin d'une longueur spécifique en caractères plutôt qu'en octets, gardez à l'esprit l'impact du codage des caractères. Unicode fournit un vaste répertoire de caractères que vous pouvez exploiter.

Tableau d'octets aléatoires

Pour générer une chaîne pseudo-aléatoire à l'aide d'un tableau d'octets, vous pouvez utiliser ce qui suit approche :

<code class="go">import (
    "crypto/rand"
    "fmt"
)

const length = 10

func main() {
    b := make([]byte, length)
    if _, err := rand.Read(b); err != nil {
        panic(err)
    }

    s := fmt.Sprintf("%X", b)
    fmt.Println(s)
}</code>

Ce code génère un tableau d'une longueur de 10 octets, le convertit en chaîne hexadécimale et imprime le résultat.

Conclusion

En fonction de vos exigences spécifiques en matière d'unicité et de longueur, vous pouvez choisir une stratégie appropriée parmi les options évoquées ci-dessus. Pour les identifiants uniques au monde, les UUID constituent une solution largement reconnue. Pour les chaînes pseudo-aléatoires d'une longueur spécifique, la conversion d'un tableau d'octets aléatoires en chaîne hexadécimale est une méthode viable.

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!

Déclaration:
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