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

Comment puis-je générer des chaînes aléatoires uniques dans une plage de longueur spécifique dans Golang ?

Susan Sarandon
Libérer: 2024-10-24 12:29:31
original
853 Les gens l'ont consulté

How Can I Generate Unique Random Strings Within a Specific Length Range in Golang?

Comment générer des chaînes aléatoires uniques dans une plage de longueurs à l'aide de Go ?

Pour générer une chaîne aléatoire unique dans une plage de longueurs spécifique dans Go , tenez compte des facteurs suivants :

Niveau d'unicité :

  • Universellement unique : Cela nécessite l'utilisation d'UUID (Universally Unique Identifiers ). Un UUID est une valeur de 128 bits dont l’unicité est garantie. Pour générer un UUID dans Go, reportez-vous aux ressources suivantes :

    • https://en.wikipedia.org/wiki/Universally_unique_identifier
    • https://godoc.org/github .com/google/uuid

Format d'affichage :

  • Hexadécimal (Hex) : Un UUID affiché au format hexadécimal se compose de 32 caractères.
  • Unicode : Unicode fournit une large gamme de points de code, permettant l'affichage de chaînes aléatoires dans différentes langues. Les chaînes de Go sont codées en UTF-8, permettant l'utilisation de caractères Unicode.

Mise en œuvre :

  • UUID : Si vous avez besoin d'une chaîne aléatoire hautement unique, il est recommandé d'utiliser un UUID car ils sont universellement uniques.
  • Chaîne pseudo-aléatoire : Pour des niveaux d'unicité inférieurs, vous pouvez utiliser l'approche suivante :

    <code class="go">package main
    
    import (
        "crypto/rand"
        "fmt"
    )
    
    func main() {
        n := 10 // Length of the random string
        b := make([]byte, n)
        if _, err := rand.Read(b); err != nil {
            panic(err)
        }
        s := fmt.Sprintf("%X", b)
        fmt.Println(s)
    }</code>
    Copier après la connexion

    Ce code génère une chaîne aléatoire de longueur 10 et l'imprime au format hexadécimal.

Autres considérations :

  • Référez-vous aux ressources suivantes pour plus d'informations :

    • https://godoc.org/github.com/google/uuid
    • https://stackoverflow.com/questions/22892120/how-to-generate-a-random-string-of-a-fixed-length-in-golang
    • https://stackoverflow.com/ questions/15582002/output-uuid-in-go-as-a-short-string

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 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