Maison  >  Article  >  développement back-end  >  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
Susan Sarandonoriginal
2024-10-24 12:29:31696parcourir

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>

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