tigtools

ランダムトークンジェネレーター

APIキー、セッショントークン、Webhookシークレット、設定ファイル用のランダムなシークレットを作成できます。トークンはブラウザー内でcrypto.getRandomValuesを使って生成され、外部に送信されることはありません。

ブラウザー内で動作 登録不要

クイック設定:

生成されたトークン

    256ビット
    トークンあたりのエントロピー
    43
    トークンあたりの文字数

    使い方

    1. トークンあたりのランダムバイト数を選びます。シークレットには32バイト(256ビット)が安全な初期設定です。
    2. トークンの用途に合ったエンコードを選び、必要に応じて「myapp_live_」のようなプレフィックスを追加します。
    3. 必要なトークン数を設定し、個別にコピーするか「すべてコピー」を使います。「再生成」を押すと、新しいトークンが作成されます。

    仕組み

    トークンは、ブラウザーとオペレーティングシステムに組み込まれた暗号学的に安全な乱数生成器、crypto.getRandomValuesが生成するランダムなバイト列から作られます。Math.randomは使用しません。

    hex、Base64、Base64URLでは、指定したバイト数を正確に取得してエンコードします。そのため、32バイトのトークンは常に256ビットのエントロピーを持ち、64文字のhex、44文字のBase64(末尾のパディング=を含む)、または43文字のBase64URLになります。Base64URLは+と/を-と_に置き換え、パディングを省くため、エスケープせずにURL、ファイル名、HTTPヘッダーで使用できます。

    英数字トークンにはA–Z、a–z、0–9のみを使用するため、一部のシステムで特殊文字として扱われる文字を避けられます。1文字あたり約5.95ビットの情報量があるため、選択したビット数以上になるように十分な数の文字を生成します(256ビットの場合は43文字)。棄却サンプリングで文字を選ぶため、62文字すべてが同じ確率で選ばれます。

    プレフィックスは通常のテキストとして追加され、エントロピーは増えません。「sk_live_」のようなプレフィックスを付けると、漏えいしたキーを見分けやすくなり、シークレットスキャナーで検出しやすくなります。シークレットはソースコードではなく、パスワードマネージャーまたはシークレットストアに保管してください。

    使用例

    Webhook署名用シークレット

    hex形式の32バイトは、エントロピー256ビットの64文字のシークレットになります。HMAC-SHA-256署名用に、送信側と受信側の両方の設定に貼り付けて使用できます。

    識別しやすいプレフィックス付きのAPIキー

    24バイト、英数字、「acme_live_」のプレフィックスを選びます。各キーはacme_live_に33文字の英数字が続く形式で、少なくとも192ビットのエントロピーを持ち、ログやシークレットスキャナーで見つけやすくなります。

    URLで使えるリセットトークン

    Base64URL形式の16バイトは、22文字(128ビット)のトークンになります。/reset?token=…のようなリンクに、パーセントエンコードせずそのまま使用できます。

    よくある質問

    シークレットは何バイトにすればよいですか?

    セッションIDなどのトークンは、128ビット(16バイト)あれば推測されることはありません。署名キーなど長期間使うシークレットには、一般的な推奨値であり、SHA-256の出力サイズにも相当する256ビット(32バイト)が適しています。

    どのエンコードを選べばよいですか?

    バイト数が同じならエントロピーも同じで、異なるのはテキスト表現だけです。互換性を重視する場合はhex、URLやヘッダーで短いトークンを使う場合はBase64URL、記号が使えないシステムでは英数字を選んでください。

    トークンは保存または記録されますか?

    いいえ。トークンはこのブラウザーのタブ内で生成され、ページを離れると消去されます。サーバーに送信されたり、アナリティクスに含まれたりすることはありません。

    これらをパスワードとして使えますか?

    はい。十分にランダムですが、多くのサイトでは複数の文字種を組み合わせる必要があります。パスワードジェネレーターなら、文字のルールを直接設定できます。

    プライバシー

    トークンはブラウザー内でcrypto.getRandomValuesを使って生成されます。アップロード、保存、記録、アナリティクスへの送信はされません。ツールが使われたことを示す匿名イベントのみ記録されます。