>  Q&A  >  본문

GUID/UUID를 생성하는 방법은 무엇입니까?

JavaScript에서 GUID(Globally Unique Identifier)를 만드는 방법은 무엇입니까? GUID/UUID는 길이가 32자 이상이어야 하며 전달 문제가 발생하지 않도록 ASCII 범위 내에 있어야 합니다.

모든 브라우저에서 어떤 루틴을 사용할 수 있는지, 내장 난수 생성기의 "무작위성"이 무엇인지, 어떻게 시드가 지정되는지 등을 잘 모르겠습니다.

P粉304704653P粉304704653350일 전506

모든 응답(2)나는 대답할 것이다

  • P粉352408038

    P粉3524080382023-10-09 14:12:19

    [RFC4122 호환 UUID 생성을 위한 최신 모범 사례를 반영하기 위해 2023년 3월 5일에 편집됨]

    crypto.randomUUID() is now standard on all modern browsers and JS runtimes. However, because new browser APIs are restricted to secure contexts, this method is only available to pages served locally (localhost or 127.0.0.1) 또는 HTTPS를 통해.

    기존 플랫폼이나 비보안 컨텍스트에서 UUID를 생성하는 다른 UUID 버전에 관심이 있는 독자를 위해 모듈uuid이 있습니다. 이 모듈은 잘 테스트되고 지원됩니다.

    위 방법이 실패할 경우 다음 방법도 있습니다(이 질문에 대한 원래 답변을 기반으로 함).

  • P粉190443691

    P粉1904436912023-10-09 13:09:03

    RFC 4122에 따르면 UUID(Universally Unique Identifier)는 GUID(Globally Unique Identifier)라고도 알려져 있으며 특정 고유성을 보장하도록 설계된 식별자입니다.

    몇 줄의 JavaScript로 RFC 호환 UUID를 구현하는 것이 가능하지만(예를 들어 아래 @broofa의 답변 참조) 몇 가지 일반적인 함정이 있습니다.

    • 잘못된 ID 형식(UUID는 "xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx" 형식이어야 합니다. 여기서 x는 [0-9, a-f] 중 하나입니다. M은 [1-5] 중 하나이고 N은 [8, 9, a , 또는 b]
    • 낮은 품질의 임의성 소스 사용(예: Math.random)

    따라서 프로덕션 환경용 코드를 작성하는 개발자는 uuid< /a> 모듈과 같이 엄격하고 잘 관리되는 구현을 사용하는 것이 좋습니다.

    회신하다
    0
  • 취소회신하다