ファイルを選択
  1. base64hub
  2. 鍵とハッシュ
  3. ランダム Base64 生成

ランダム Base64 生成ツール

ランダムなバイト数と出力形式を選ぶだけで、トークン、ソルト、ID、テストデータ用の安全なランダム文字列が得られます。値はブラウザの暗号論的乱数生成器から作られ、どこにも保存されません。

無料 登録不要・制限なし ローカル アップロードなし 一括 1 クリックで最大 1000 個 更新日 2026/10/27

エントロピー –長さ –

ブラウザの暗号論的に安全な乱数生成器 crypto.getRandomValues で生成しています。保存も送信も一切されません。

ブラウザ内で処理されます。このページがデータをどこかに送信することはできません – その根拠

ランダムな Base64 を生成する方法

  1. バイト に必要なランダム量を 1~4096 の範囲で指定します。デフォルトの 32 バイトは 256 ビットです。
  2. 形式 を選びます。Base64、Base64URL(URLセーフ、パディングなし)、16進数のいずれかです。Base64 では パディングなし(=) にもチェックを入れられます。
  3. 複数の値をまとめて作るには 個数 を設定します。最大 1000 個で、1 行に 1 つずつ出力されます。
  4. 出力をコピーするか、テキストファイルとしてダウンロードします。新しい値が欲しければ 再生成 を押します。出力の下の エントロピー と 長さ には、ランダム性のビット数と文字数が表示されます。

Laravel の APP_KEY や AES-256 鍵など、特定の形式の鍵が必要な場合は、上部の プリセット から選んでください。各プリセットについては Base64 鍵生成ツール で解説しています。

出力の長さ

ランダム性を決めるのはバイト数で、形式は書き表し方を決めるだけです。Base64 は 1 文字に 6 ビット、16進数は 4 ビットしか詰め込めないので、同じ強度なら16進数のほうが常に長くなります。

バイトビットBase64Base64(パディングなし)Base64URL16進数
86412111116
1612824222232
2419232323248
3225644434364
4838464646496
64512888686128

バイト数が 3 で割り切れる場合(24、48)は = がまったく付かないので、パディングあり・なしの列が同じになります。値を URL、ファイル名、Cookie に入れる場合は Base64URL を使ってください。そこでは + と / のエスケープが必要になるからです。

何バイトにすべきか

  • 一意な ID、リクエスト ID、アップロードファイル名: 16 バイト(128 ビット)。推測や衝突は現実的な問題になりません。
  • セッショントークン、API トークン、パスワードリセット用リンク: 32 バイト。余裕を持たせても増えるのは 20 文字ほどです。
  • パスワードハッシュ用のソルト: 16 バイトが一般的な推奨値です。ソルトは秘密である必要はなく、一意であればかまいません。
  • テスト用データ: サイズは自由です。個数 を使えば、1000 個の値を一度にファイルに書き出せます。

ランダム文字列の強度はバイト数で決まります。44 文字の値をフィールドに収めるために 20 文字に切り詰めると、エントロピーの半分以上を捨てることになります。切り詰めるのではなく、バイト数を小さくして出力全体を使ってください。

ターミナルやコードで同じことをする

以下はどれも 32 バイトのランダム値を Base64 で出力します(secrets.token_urlsafe は URLセーフのアルファベットで、パディングなしで出力します)。

openssl rand -base64 32
head -c 32 /dev/urandom | base64
import base64, secrets

print(base64.b64encode(secrets.token_bytes(32)).decode())
print(secrets.token_urlsafe(32))

Node.js では crypto.randomBytes(32).toString("base64url") で URLセーフ形式が得られます。OpenSSL には落とし穴が一つあります。48 バイトを超えると openssl rand -base64 は出力を 64 文字で折り返すので、64 バイトの値は 2 行になります。1 行で得るには openssl rand 64 | openssl base64 -A を使うか、設定ファイルに書く前に改行を取り除いてください。ほかのレシピは OpenSSL と Python のページにあります。

よくある質問

この乱数生成はパスワードやトークンに使えるほど安全ですか?

はい。ブラウザの暗号論的に安全な乱数生成器 crypto.getRandomValues を使っています。秘密にすべき値に Math.random() は使わないでください。予測不能になるようには設計されていません。

ちょうど N 文字のランダムな Base64 文字列を作るには?

N × 3 ÷ 4 バイトを選びます。バイト数が 3 で割り切れればパディングは付かないので、33 バイトならちょうど 44 文字、48 バイトなら 64 文字です。それ以外の場合は パディングなし(=) にチェックを入れると、長さは ⌈4 × バイト数 ÷ 3⌉ になります。

生成した値が重複することはありますか?

理論上はありえますが、16 バイト(128 ビット)以上なら確率は無視できるほど小さく、衝突が起こりそうになるまでに約 2^64 個の値が必要です。一意なランダム ID の最低ラインとして 16 バイトがよく使われるのはこのためです。

値はどこかに保存されますか?

いいえ。コピーするかダウンロードするまで、このタブのメモリ上に保持されるだけです。ページは Cloudflare のページビュー計測以外のネットワーク通信もできません。再読み込みすれば消えます。