ホームページ >バックエンド開発 >Golang >Goで特定の長さの一意のランダムな文字列を生成するにはどうすればよいですか?

Goで特定の長さの一意のランダムな文字列を生成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 13:15:02506ブラウズ

How to Generate Unique Random Strings of Specific Lengths in Go?

Go で特定の長さの一意のランダム文字列を生成する

Go では、指定された長さの範囲内で一意のランダム文字列を生成するのは簡単な作業です。ただし、必要な一意性のレベルを理解することが重要です。

Universally Unique UUID

グローバルな一意性が要件の場合、UUID (Universally Unique Identifier) が堅牢なソリューションを提供します。 UUID は 128 ビット値で構成され、膨大な組み合わせが可能になります。 Go で UUID を生成するには、次のアプローチを検討してください。

<code class="go">import (
    "fmt"

    "github.com/google/uuid"
)

func main() {
    u := uuid.New()
    fmt.Println(u.String())
}</code>

擬似ランダム文字列

それほど普遍的ではないオプションとして、Go の crypto/rand パッケージは疑似ランダムバイトを生成する安全な方法。これらのバイトは 16 進文字列に変換され、擬似ランダム文字列が生成されます。

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

その他の考慮事項

  • UUID の表示: UUID は 128 ビット値で、通常は 16 進形式で表示され、32 文字の文字列になります。よりコンパクトな表現をするには、base64 または URL セーフ エンコーディングの使用を検討してください。
  • Unicode のサポート: Go 文字列は UTF-8 でエンコードされ、Unicode 文字を含めることができます。これにより、Unicode の広範な文字セットを使用して、潜在的なランダム文字列のプールを増やす可能性が開かれます。

以上がGoで特定の長さの一意のランダムな文字列を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。