ホームページ  >  に質問  >  本文

GUID/UUID を生成するにはどうすればよいですか?

JavaScript で GUID (Globally Unique Identifier) を作成するにはどうすればよいですか? GUID/UUID は少なくとも 32 文字の長さで、渡す際のトラブルを避けるために ASCII 範囲内に収める必要があります。

すべてのブラウザでどのようなルーチンが使用できるのか、組み込みの乱数ジェネレーターの「ランダム性」とは何か、シード方法などはわかりません。

P粉304704653P粉304704653350日前508

全員に返信(2)返信します

  • P粉352408038

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

    [RFC4122 準拠の UUID を生成するための最新のベスト プラクティスを反映するために 2023 年 3 月 5 日に編集]

    crypto.randomUUID() は、すべての最新のブラウザーと JS ランタイムで標準になりました。ただし、新しいブラウザー API は安全なコンテキストに制限されているため、このメソッドは、ローカル (localhost または 127.0.0.1) または HTTPS.

    経由で提供されるページでのみ使用できます。

    他の UUID バージョン、レガシー プラットフォームまたは安全でないコンテキストでの UUID の生成に興味のある読者のために、uuid モジュール があります。これは十分にテストされ、サポートされています。

    上記の方法が失敗した場合は、次の方法もあります (この質問に対する元の回答に基づく)。

    リーリー

    注:

    Math.random() に依存する any UUID ジェネレーターの使用は強く推奨されません (この回答の以前のバージョンで紹介されていたスニペットを含む) ) 理由はここで最もよく説明されています. TL;DR: Math.random() に基づくソリューションは、良好な一意性の保証を提供しません。

    返事
    0
  • P粉190443691

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

    UUID (Universally Unique Identifier) は、RFC 4122 によれば、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
  • キャンセル返事