トークン生成
API、セッション、暗号化などのための安全なランダムトークンを生成。すべてブラウザ内で完結します。
Tips
128ビットは実質的に解読不可能
128ビットのトークンには340澗(かん)通りの値があります。毎秒1兆個をチェックしても、すべてを試すには宇宙の年齢よりも長い時間がかかります。
Hexはデバッグに最適
16進数トークンはログや設定ファイルで読みやすく、各文字がちょうど4ビットを表すため、バイト境界が視覚的に明確です。
Base58は紛らわしい文字を排除
Base58は0、O、I、lなど多くのフォントで似て見える文字を除外しています。手動でコピーする際のミスを防ぎます。
URL安全トークンはエンコード不要
標準Base64はURLでパーセントエンコードが必要な+と/を使用します。URL安全形式はそれらを-と_に置換し、パディング(=)を除去するため、クエリ文字列やパスにそのまま使用できます。
よくある使い方
APIキー生成
サービスやアプリケーションの認証用に、強力でユニークなAPIキーを作成します。
セッションID・CSRFトークン
ウェブアプリケーション用の予測不可能なセッション識別子とCSRF保護トークンを生成します。
ワンタイムリンク
パスワードリセットリンク、メール認証、招待URLなどの安全なURL安全トークンを作成します。
暗号鍵・初期化ベクトル
対称暗号鍵と初期化ベクトル用の暗号素材を生成します。
一意識別子
UUID の代替として、長さと形式を設定可能なランダムIDを生成します。
Webhookシークレット
サービス間のWebhook署名検証用の共有シークレットを生成します。
よくある質問
パスワードとトークンの違いは何ですか?
パスワードは人間が覚えて認証に使う文字列です。トークンはシステム間通信、APIアクセス、暗号操作に使われる機械生成のランダム文字列です。トークンは覚える必要がなく、予測不可能であることだけが重要です。
128ビットと256ビット、どちらを選ぶべきですか?
APIキー、セッショントークン、一意IDなどほとんどの用途には128ビットで十分です。暗号鍵、高セキュリティ環境、またはコンプライアンス基準が求める場合は256ビットを使用してください。
どの形式を使うべきですか?
ログやデバッグにはHex、コンパクトな保存にはBase64、ウェブリンクやクエリパラメータにはURL安全形式、人間が手動で読んだりコピーしたりする場合はBase58を使用してください。
トークンはサーバーに送信されますか?
いいえ。すべてのトークンはWeb Crypto API(crypto.getRandomValues)を使用してブラウザ内で完全に生成されます。データの送信や保存は一切ありません。
Base58とは何ですか?
Base58は58個の英数字を使用するエンコード方式で、視覚的な混同を避けるため0、O、I、lを除外しています。Bitcoinで広まり、トークンを人間に表示する場合に最適です。
このトークンを暗号鍵として使えますか?
生成されるランダムバイトは暗号学的に安全で、鍵素材として適しています。ただし、本番の暗号システムでは、鍵導出、保管、ローテーションを適切に処理する確立されたライブラリを使用してください。