>백엔드 개발 >Golang >Go에서 특정 길이의 고유한 무작위 문자열을 생성하는 방법은 무엇입니까?

Go에서 특정 길이의 고유한 무작위 문자열을 생성하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-24 13:15:02509검색

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는 일반적으로 16진수 형식으로 표시되는 128비트 값으로, 결과적으로 32자 문자열로 표시됩니다. 보다 간결하게 표현하려면 base64 또는 URL 안전 인코딩을 사용하는 것이 좋습니다.
  • 유니코드 지원: Go 문자열은 UTF-8로 인코딩되므로 유니코드 문자를 포함할 수 있습니다. 이는 유니코드의 광범위한 문자 집합을 사용하여 잠재적인 임의 문자열 풀을 늘릴 수 있는 가능성을 열어줍니다.

위 내용은 Go에서 특정 길이의 고유한 무작위 문자열을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.