Calc & Tools
ランダムAPIキー生成ツール
開発

🔑
ランダムAPIキー生成ツール

長さ、文字種、接頭辞、生成数を指定してランダムなAPIキー文字列を生成できるツールです。Base62、Hex、URL-safe形式、見間違えやすい文字の除外、一括コピー、推定エントロピー表示に対応し、生成処理はブラウザ内で完結します。
長さ、文字種、接頭辞(prefix)、生成数を指定して、ランダムなAPIキー文字列を生成できます。 乱数はブラウザのWeb Crypto APIで生成し、このページから生成結果を外部サーバーへ送信する処理はありません。

よく使う設定
例:sk_live_、dev_、myapp_。接頭辞はランダム部分の長さ・推定エントロピーには含めません。
Base62(英大文字・英小文字・数字)
文字
現在の文字集合Base62(英大文字・英小文字・数字)
使用可能文字数62文字
推定ランダム量
190.5 bit
128 bit以上

ランダムAPIキー生成ツールとは?

ランダムAPIキー生成ツールは、APIの認証やサービス間連携などで使うための ランダムな文字列をブラウザ上で作成するツールです。Base62、16進数(Hex)、URL-safe文字列から 選択でき、必要に応じて sk_live_dev_ のような接頭辞も付けられます。
接頭辞を付けると、ログや管理画面でキーの用途を見分けやすくなります。例えば本番用と開発用でlive_ / dev_ を分ける、サービス名を短く付ける、といった運用ができます。 ただし接頭辞は固定文字列なので、ランダム性を増やす部分ではありません。

このツールのAPIキー生成方法

乱数生成にはブラウザ標準の crypto.getRandomValues() を使用します。 Web Crypto APIでは、このメソッドは暗号学的に強い乱数値を生成するための仕組みとして定義されています。 また、このツールでは単純に乱数を文字数で割った余りだけを使わず、採用できる乱数だけを選ぶ方式にして、 文字ごとの出現確率が偏りにくいようにしています。
※ ここで生成するのはAPI認証などに使う「ランダム文字列」です。RSA・ECDSA・AESなどの暗号鍵そのものを 生成するツールではありません。暗号鍵が必要な場合は、利用する暗号方式に対応した専用の鍵生成API・ライブラリを使用してください。

推定エントロピー(bit)の見方

ランダム部分の推定エントロピーは、文字集合の大きさと文字数から次の式で表示しています。LL をランダム文字数、NN を使用可能な文字数とすると、 推定エントロピー HH は次のように計算できます。
H=L×log2(N)H = L \times \log_2(N)
例えばHex(16進数)は使用可能文字が16種類なので、1文字あたりlog2(16)=4\log_2(16) = 4 bitです。64文字の場合は次のようになります。
HHex,64=64×log2(16)=256bitH_{\mathrm{Hex},64} = 64 \times \log_2(16) = 256\,\mathrm{bit}
Base62は英大文字・英小文字・数字の62種類を使います。見間違えやすい文字を除外しない標準Base62で 32文字を生成した場合は、次のように約190.5 bitになります。
HBase62,32=32×log2(62)190.5bitH_{\mathrm{Base62},32} = 32 \times \log_2(62) \approx 190.5\,\mathrm{bit}
「見間違えやすい文字を除外」を有効にすると使用可能な文字数 NN が少し小さくなるため、 同じ文字数 LL でも表示される推定bit数はわずかに下がります。 実際の値は上部の「推定ランダム量」に現在の設定を反映して自動表示されます。

APIキーを安全に運用するポイント

APIキーは生成して終わりではなく、保存・送信・失効まで含めて管理することが重要です。 APIキーを認証情報として利用する場合は、次のような運用を検討してください。
  • クライアントコードや公開リポジトリへ直接書かない:ブラウザに配信されるJavaScriptや公開Gitリポジトリへ秘密のAPIキーを埋め込むと、第三者に取得される可能性があります。
  • 利用範囲を制限する:提供元がIP、ドメイン、API、権限などの制限機能を用意している場合は、必要最小限の範囲に絞ります。
  • 不要なキーは削除し、必要に応じてローテーションする:漏えいが疑われる場合は古いキーを無効化し、新しいキーへ切り替えます。
  • URLのクエリに秘密情報を入れない:URLはログや履歴に残ることがあります。API提供元が指定するAuthorizationヘッダーや専用ヘッダーを優先してください。
  • サーバー側で適切に保管する:第三者APIの秘密情報は環境変数やSecrets Managerなどの仕組みで管理し、アクセスできる主体を絞ります。

自分のサービスでAPIキーを発行する場合

自社APIのキーを発行する用途では、表示用の短いID・接頭辞と、十分に長い秘密部分を分けて設計すると管理しやすくなります。 例えば myapp_live_... のように用途を判別できる接頭辞を付け、サーバー側ではキーの所有者、権限、 作成日時、最終利用日時、失効状態などを別途管理します。
自社サービスがキー全文を後から取り出す必要がない設計なら、秘密部分の照合用データをハッシュ化して保存する方法も検討できます。 一方、第三者サービスへ送るAPIキーのように元の値が必要な秘密情報は、復元可能な安全なシークレット管理基盤で保管する必要があります。

Base62・Hex・URL-safeの違い

  • Base62: 英大文字・英小文字・数字を使用します。比較的短い文字数でも多くの組み合わせを確保できます。
  • Hex: 0〜9とa〜fだけを使います。ログ、データベース、CLIなどで扱いやすく、1文字あたり4 bitとして計算しやすい形式です。
  • URL-safe: 英数字に -_ を加えた文字集合です。URLやHTTPヘッダーなどで扱いやすい形式です。

よくある質問

  • Q. 生成したAPIキーはサーバーへ送信されますか?
    A. このページの生成処理はブラウザ内で完結し、生成したキーをこのツールのサーバーへ送信する処理はありません。 ただし、ブラウザ拡張機能や端末自体の安全性まではこのページで保証できません。
  • Q. 何文字にすればよいですか?
    A. 必要な長さはAPIの設計や脅威モデルによって異なります。このツールでは文字数だけでなく推定bit数も表示するため、 システム側の要件に合わせて決めてください。既存サービス用のキーを作る場合は、そのサービスが指定する形式を優先してください。
  • Q. パスワード生成にも使えますか?
    A. ランダム文字列としては生成できますが、人が入力・記憶するパスワードとは用途が異なります。 パスワードはパスワードマネージャーや専用のパスワード生成機能を使う方が管理しやすい場合があります。
  • Q. APIキーと暗号鍵は同じですか?
    A. 同じとは限りません。APIキーはAPI利用者を識別・認証するための文字列として使われることがありますが、 AES鍵やRSA/ECDSA鍵のような暗号処理用の鍵とは目的・生成方法・管理方法が異なります。
ランダムAPIキー生成ツール
ホーム
お気に入り
メニュー