crypto.randomUUID() を使ってUUIDを生成する
JavaScriptでGUID/UUIDを生成するには、いくつかの方法があります。
crypto.randomUUID()を使う
Node.js 14.17.0以降と一部のブラウザでは、crypto.randomUUID()
というAPIを使用して、ランダムなUUIDを生成できます。このAPIは、最もシンプルで安全な方法の一つです。
const uuid = crypto.randomUUID();
console.log(uuid); // 例: "123e4567-e89b-12d3-a456-426655440000"
UUIDライブラリを使用する
uuid
やuuidv4
などのnpmライブラリを使用して、UUIDを生成することもできます。これらのライブラリは、crypto.randomUUID()
APIよりも多くの機能を提供する場合があります。
const { v4: uuidv4 } = require('uuid');
const uuid = uuidv4();
console.log(uuid); // 例: "123e4567-e89b-12d3-a456-426655440000"
独自のアルゴリズムを使用して、UUIDを生成することもできます。ただし、この方法は複雑で、衝突の可能性が高くなるため、推奨されません。
オンラインツールを使用して、UUIDを生成することもできます。これらのツールは、簡単に使用できますが、セキュリティ上のリスクがあるため、機密データに使用することは避けてください。
ほとんどの場合、crypto.randomUUID()
APIを使用するのが最も簡単で安全な方法です。ブラウザでcrypto.randomUUID()
APIを使用できない場合は、uuid
やuuidv4
などのnpmライブラリを使用することをおすすめします。
crypto.randomUUID() を使う
const uuid = crypto.randomUUID();
console.log(uuid); // 例: "123e4567-e89b-12d3-a456-426655440000"
UUIDライブラリを使用する
const { v4: uuidv4 } = require('uuid');
const uuid = uuidv4();
console.log(uuid); // 例: "123e4567-e89b-12d3-a456-426655440000"
独自のアルゴリズムを使用する
function generateUUID() {
// 独自のアルゴリズムを実装
return "123e4567-e89b-12d3-a456-426655440000";
}
const uuid = generateUUID();
console.log(uuid);
注意: オンラインツールは、機密データに使用することは避けてください。
Math.random() を使う
function generateUUID() {
const chars = "0123456789abcdef";
let uuid = "";
for (let i = 0; i < 32; i++) {
uuid += chars[Math.floor(Math.random() * 16)];
}
return uuid;
}
const uuid = generateUUID();
console.log(uuid); // 例: "32b13456-e89b-12d3-a456-426655440000"
この方法は、crypto.randomUUID()
や UUIDライブラリよりも安全性が低くなりますが、ブラウザの互換性が高くなります。
タイムスタンプとランダムな値を使う
function generateUUID() {
const timestamp = Date.now();
const randomValue = Math.random();
return `${timestamp}-${randomValue}`;
}
const uuid = generateUUID();
console.log(uuid); // 例: "1649000000000-0.123456789"
この方法は、非常にシンプルですが、衝突の可能性が高くなります。
これらのライブラリは、さまざまな方法でUUIDを生成することができます。
サーバ側で生成する
JavaScriptではなく、サーバー側でUUIDを生成することもできます。
注意: 上記の方法は、すべてRFC 4122に準拠したUUIDを生成するわけではありません。
javascript guid uuid