ランダム文字列生成ツール
ランダム文字列生成ツールの使い方
このツールは、ランダム文字列を生成します。
各設定を選択すると、リアルタイムで生成して表示します。
ランダム文字列とは
ランダム文字列(Random String) とは、予測不可能なアルゴリズムによって生成された文字の列です。「ランダム」の品質は用途によって求められる水準が異なり、大きく次の2種類に分かれます。
| 種別 | 特徴 | 主な用途 |
|---|---|---|
| 疑似乱数(PRNG) | 高速。シード値から再現可能 | テストデータ、ゲーム |
| 暗号論的乱数(CSPRNG) | 予測不可能・再現不可 | パスワード、トークン、鍵生成 |
セキュリティが求められる場面では必ず CSPRNG を使用してください。本ツールはブラウザの crypto.getRandomValues() API を利用しており、暗号論的に安全な乱数を生成します。
生成方法の仕組み
ステップ1:文字プールの構築
まず使用可能な文字の集合(プール)を定義します。
英小文字 : abcdefghijklmnopqrstuvwxyz (26文字)
英大文字 : ABCDEFGHIJKLMNOPQRSTUVWXYZ (26文字)
数字 : 0123456789 (10文字)
記号 : !@#$%^&*()-_=+[]{}|;:,.<>? (26文字)
→ 全種類有効時のプール: 88文字
プールが大きいほど、同じ長さの文字列でも取りうる組み合わせ数(エントロピー)が増大します。
ステップ2:エントロピー計算
エントロピー(ビット数) は文字列の「推測困難さ」を数値化したものです。
エントロピー = log₂(プールサイズ) × 文字数
実例(プールサイズ88文字の場合):
| 文字数 | エントロピー | 解読耐性の目安 |
|---|---|---|
| 8文字 | 約50 bit | 弱い(短命用途のみ) |
| 12文字 | 約75 bit | 一般的なパスワード |
| 16文字 | 約100 bit | 推奨(長期保存) |
| 24文字 | 約151 bit | 暗号鍵・APIトークン |
ステップ3:文字の選択
javascriptの場合、Math.random() は暗号論的に安全ではないため、crypto.getRandomValues() を使用します。
// NG
const index = Math.floor(Math.random() * pool.length);
// OK
function secureRandom(max) {
const arr = new Uint32Array(1);
crypto.getRandomValues(arr);
return arr[0] % max;
}
プリセット解説
パスワード
全文字種を有効にし、エントロピーを最大化します。英字・数字・記号を組み合わせることで、多くのパスワードポリシーを満たします。推奨長:16〜24文字以上
英数字のみ
a-z A-Z 0-9 のみを使用。記号を含まないため、入力しやすく多くのシステムと互換性があります。推奨長:20文字以上
数字のみ
PIN コードや数値のみを受け付けるフォームに最適。6〜8桁の数値 ID 生成に使います。
URL安全(URL-safe)
a-z A-Z 0-9 - _ のみ使用。URLパラメータやファイル名にそのまま使用できます。Base64 の + / = を含まないため、エンコード不要です。
Base64風
a-z A-Z 0-9 + / を使用。厳密な Base64 ではありませんが、同様の文字セットで短いトークンを生成したいときに便利です。
HEX
0-9 a-f のみ使用。UUID 風の識別子や、カラーコード、ハッシュ値の代替として利用できます。
よくある用途
- APIキー(URL安全・32文字)・Bearerトークン(英数字・48文字)を生成したい
- ユニットテストやE2Eテストで重複しないユーザー名・メールアドレスを生成したい
- シークレットキー・暗号化キーを生成したい
注意点
プライバシーについて
本ツールはブラウザ上で処理を行うため、入力されたデータが外部サーバーに送信されることはありません。

