🌐 JA

🎲 テキスト乱数生成器

UUID、ランダム文字列、セキュリティキーなどを生成するツールです。APIキー、一時パスワード、トークン生成に便利で、暗号学的に安全な方法で乱数を生成します。

結果
※ UUIDは汎用一意識別子であり、重複する確率は極めて低いです。
※ 生成される乱数は暗号学的に安全な方式で作られます。
※ APIキー、一時パスワード、トークンなどに活用できます。
ガイド

詳しく見る

01

1. 乱数生成の重要性とCSPRNG

乱数(Random Number)は予測不可能な値であり、暗号化・セキュリティ・ゲーム・シミュレーションに欠かせません。一般的な乱数生成器は擬似乱数(Pseudo-Random)であり、アルゴリズムで生成されるためシード値が分かれば予測が可能です。セキュリティが重要な場面ではCSPRNG(暗号論的に安全な擬似乱数生成器)を使用する必要があります。PHPのrandom_bytes()やrandom_int()はCSPRNGであり、/dev/urandomやCryptGenRandomを利用します。JavaScriptではcrypto.getRandomValues()が提供されており、ブラウザのエントロピー源を活用します。通常のMath.random()はセキュリティ用途には不向きであり、トークン・セッションID・暗号鍵の生成には絶対に使用してはいけません。

02

2. UUIDと一意識別子

UUID(Universally Unique Identifier)は128ビットの一意識別子で、重複の確率は極めて低くなっています。UUID v4は完全なランダム生成であり、最も広く使われています。形式はxxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxxで、4はバージョン、yはvariantを表します。UUID v1はタイムスタンプとMACアドレスに基づき時系列で並べ替えが可能ですが、MACアドレスの露出によりセキュリティ上の懸念があります。UUID v7は最新バージョンでタイムスタンプベースながら個人情報を露出しません。データベースの主キー、ファイル名、セッションID、分散システムでUUIDを活用すれば、中央調整なしに一意性を保証できます。

03

3. セキュリティキーとトークンの生成

APIキー・認証トークン・セッションIDは十分なエントロピーを持つ必要があります。最低128ビット(16バイト)以上を推奨し、256ビット(32バイト)であればさらに安全です。Base64エンコードによりURLセーフな文字列に変換できます。JWT(JSON Web Token)はHeader・Payload・Signatureで構成され、トークン自体に情報を含みます。CSRFトークンはクロスサイトリクエストフォージェリを防ぐため、各フォームに固有のトークンを含めます。OAuth 2.0のstateパラメータもCSRF対策のためのランダム値です。トークンはワンタイム(nonce)にするか有効期限を設定し、再利用攻撃を防ぐ必要があります。

04

4. 暗号学的乱数生成器の実装

オペレーティングシステムはハードウェアノイズ、キーボード/マウスのタイミング、ネットワークパケットなどからエントロピーを収集します。Linuxは/dev/random(ブロッキング)と/dev/urandom(ノンブロッキング)を提供します。/dev/randomはエントロピー不足時に待機するため、サーバー環境では問題になることがあります。最新のカーネルはgetrandom()システムコールを推奨しています。WindowsはCryptGenRandom(レガシー)またはBCryptGenRandom(最新)を使用します。ハードウェア乱数生成器(HRNG)はIntel RDRAND命令やTPMチップを活用して真の乱数を生成します。クラウド環境では仮想化によるエントロピー不足の問題があり、havegedのようなデーモンが使われます。

05

5. ブロックチェーンとスマートコントラクトにおける乱数

ブロックチェーンは決定論的な環境であるため乱数生成が難しくなっています。すべてのノードが同じ結果を検証する必要があるため、一般的な乱数は使用できません。ブロックハッシュを乱数源として使う方法はマイナーによる操作の可能性があります。Chainlink VRF(Verifiable Random Function)は検証可能な乱数を提供し、オンチェーン抽選やNFTミンティングに使われます。コミット・リビール方式は参加者が先にハッシュを提出(commit)し、後で原本を公開(reveal)することで操作を防ぎます。ランダムビーコン(Random Beacon)はNISTやdrandプロジェクトが提供する公開乱数サービスです。スマートコントラクトゲームには信頼できる乱数が不可欠です。

06

6. 乱数生成ツールの実践的な活用

オンライン乱数生成器は様々な用途に活用されます。APIキー発行時は十分な長さ(32文字以上)と複雑さを確保する必要があります。一時パスワードは数字+英字+特殊文字を組み合わせ、使い捨てとして設定します。クーポンコードはユーザーフレンドリーな大文字+数字の組み合わせ(例:AB12-CD34-EF56)が好まれます。招待コードは短く覚えやすい6〜8文字を使用します。ファイル名の衝突防止にはタイムスタンプ+乱数の組み合わせを使います。データベースのシャーディングキーにUUIDを使えば、自動採番IDの限界を克服できます。A/Bテストのグループ割り当ても乱数によって公平性が担保されます。常にセキュリティ要件に合った適切な乱数生成器を選ぶことが重要です。

よくある質問

生成される乱数は本当に安全ですか?
はい。このツールはCSPRNG(暗号論的に安全な擬似乱数生成器)を利用しており、通常のMath.random()とは異なり予測が極めて困難な乱数を生成します。
UUIDとは何ですか?どんな時に使いますか?
UUIDは128ビットの一意識別子で、重複する確率が極めて低いのが特徴です。データベースの主キーやファイル名、セッションIDなど、一意性が必要な場面で広く使われます。
生成した値をAPIキーやトークンとして使えますか?
はい。十分な長さ(32文字以上を推奨)で英数字や16進数形式を選んで生成すれば、APIキーや一時トークンとしても活用できます。
生成した乱数はサーバーに送信・保存されますか?
いいえ。すべてブラウザ内で生成され、サーバーに送信されることはありません。
長さはどのくらいに設定すればいいですか?
用途によりますが、セキュリティ用途では16文字(128ビット相当)以上、より高い安全性が必要な場合は32文字以上を推奨します。1〜256の範囲で自由に指定できます。