Maison  >  Article  >  développement back-end  >  Comment générer des chaînes aléatoires avec une longueur personnalisée et un caractère unique dans Golang ?

Comment générer des chaînes aléatoires avec une longueur personnalisée et un caractère unique dans Golang ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-25 07:58:02730parcourir

How to Generate Random Strings with Custom Length and Uniqueness in Golang?

Génération de chaînes aléatoires uniques avec une longueur spécifiée dans Golang

Question : Comment puis-je générer des chaînes aléatoires avec un longueur unique dans une plage spécifiée à l'aide de Golang ?

Réponse :

Définir les niveaux d'unicité

Le niveau d'unicité dépend de les exigences spécifiques. Pour des chaînes véritablement universellement uniques, pensez aux UUID, qui fournissent un identifiant globalement unique. Les UUID sont constitués de 122 bits aléatoires, ce qui donne une représentation hexadécimale de 32 caractères.

Affichage des UUID

Les UUID peuvent être affichés dans différents formats :

  • Hexadécimal : 32 caractères composés de 0 à 9 et A-F
  • Décimal : 13 caractères composés de 0 à 9 (limités par le nombre de caractères dans un décimale)

Génération de chaînes pseudo-aléatoires

Pour les chaînes pseudo-aléatoires qui ne sont pas universellement uniques, les approches suivantes peuvent être utilisées :

  • Octets aléatoires cryptographiques : Utilisez rand.Read() pour générer un tableau d'octets aléatoires et codez-le sous forme de chaîne hexadécimale.
<code class="go">package main

import (
    "crypto/rand"
    "fmt"
)

func main() {
    n := 10
    b := make([]byte, n)
    if _, err := rand.Read(b); err != nil {
        panic(err)
    }
    s := fmt.Sprintf("%X", b)
    fmt.Println(s)
}</code>

Cette méthode fournit des chaînes aléatoires sans garantie d'unicité particulière.

Considérations supplémentaires :

  • Les chaînes Golang sont codées en UTF-8, ce qui permet une large gamme de caractères .
  • Unicode fournit de nombreux points de code pour générer des chaînes uniques et plus longues.
  • Les UUID sont l'option privilégiée pour générer des chaînes universellement uniques.
  • Pour les chaînes pseudo-aléatoires, la longueur de la chaîne affecte directement le niveau de caractère aléatoire et d'unicité.

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