Wie generieren Sie einzigartige random-string in einen Längenbereich mit Golang?
Möchte ich eine eindeutige, zufällige Zeichenfolge in der Länge reichen. Zum Beispiel, ich Länge ist 10. und jedes mal, wenn Sie die generierte Zeichenfolge ist einzigartig .
- Was haben Sie bisher ausprobiert? Als-ist, diese Frage ist auch OEN für Stack-Überlauf.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie einzigartig ist einzigartig?
wenn Universally unique finden Sie unter: https://en.wikipedia.org/wiki/Universally_unique_identifier
Aus insgesamt 128 bits, Typ 4 UUIDs haben 6 reservierte bits (4 für die version und 2 andere reservierte bits), also zufällig generierte UUIDs haben 122 zufällige bits.
für UUID finden Sie unter: Gibt es eine Methode zur Generierung einer UUID mit der Sprache gehen
, Wie Sie ihn anzeigen? ( Binär-zu-text-Codierung )
Ein UUID ist einfach einer 128-bit-Wert. wenn Sie die Anzeige im Hex-format wird es 32 Zeichen.
wenn Sie möchten, dass in den 10 Platz, 128/10=12.8 => 13 bit pro Platz, so dass Sie brauchen, 8192 alphabet !
string in Golang in UTF-8 kodiert, so können Sie die Verwendung der Unicode-alphabet:
Unicode hat genug code-Punkte, siehe: Wie viele Zeichen abgebildet werden können mit Unicode?
Abschluss:
wenn Sie brauchen, Universally unique verwenden Sie einfach UUIDs.
und siehe: So erzeugen Sie eine zufällige Zeichenfolge von fester Länge in golang?
benötigen oder wenn Sie pseudo-random-string mit der Länge 10, können Sie diesen (aber nicht Universally unique):
Beispiel-Ausgabe:
siehe auch: Ausgabe der UUID im Gehen, wie eine kurze Zeichenfolge
und: Gibt es eine Methode zur Generierung einer UUID mit der Sprache gehen