Node.jsのUUIDv4作成をcryptoやuuidモジュールを使った実装方法

node.jsでUUIDを作成する方法です。一般的に広く使用されているUUIDv4を作成する方法を解説していきます。

実際の生成コード

const crypto = require("crypto");
console.log(crypto.randomUUID());

実行結果

$ node sample.js
fc7c6693-d811-44a6-94b4-d6601600e15e
$ node sample.js
2085c95a-1c8a-4e42-bcce-08ef82540d63
$ node sample.js
4b274eea-e0df-4d2c-b678-21140fac563b
$ node sample.js
268ec9d6-5cf5-4882-a8a8-5681c2218cf3

ランダムな RFC 4122 バージョン 4 UUID を生成します。 UUID は、暗号化擬似乱数ジェネレーターを使用して生成されます。(日本語訳)

https://nodejs.org/dist/latest-v18.x/docs/api/crypto.html#cryptorandomuuidoptions

2023年8月の現時点でのLTS版 node.js v18 で使用することができ、v15.6.0, v14.17.0から使用する事が出来ます。

こちらの利点は標準ライブラリのcryptoモジュールで完結している点です。

uuidモジュールを使用した実装方法

cryptoモジュールを使用しない実装方法です。

uuidモジュールを使用します

https://www.npmjs.com/package/uuid

UUID 1,3,4,5に対応しています。

まず、プロジェクトのディレクトリでuuidパッケージをインストールします。

$ npm install uuid

次に、以下のようにnode.jsスクリプト内でUUIDv4を生成することができます。

const { v4: uuidv4 } = require('uuid');

// 新しいUUIDv4を生成
const uuid = uuidv4();

console.log(uuid);

このコードは、uuidパッケージからv4関数をインポートし、その関数を呼び出して新しいUUIDv4を生成します。生成されたUUIDv4はコンソールに出力されます。

UUIDv4について

UUIDv4は、Universally Unique Identifier(UUID)のバージョン4を指します。

UUIDは、一意性を保証するために設計された識別子で、様々なアプリケーションやシステムで使用されます。UUIDv4は、ランダム性が高く、一意性が確保されるため、広く一般的な用途に適しています。

UUIDv4のランダムなビット数が2^128(約3.4 x 10^38)であるため、この範囲内でUUIDv4が生成されるたびに、重複が発生する確率は非常に低くなります。実際の世界では、この確率は非常に小さいため、ほとんどの場面では無視できる程度です。

したがって、一般的な用途ではUUIDv4は十分な一意性を提供します。ただし、非常に大量のUUIDv4が短時間に生成されるような特殊なシナリオでは、重複が発生する可能性が理論的には存在することを理解しておく必要があります。