Handy Dev Tools
日常的な作業のためのシンプルなオンラインツール

お気に入りがありません

    Base64エンコード/デコードツール
    Markdown to HTML変換
    HTML to Markdown変換
    URL エンコード・デコード
    Unicodeエスケープ変換
    Unicodeエンコード/デコード
    SQLフォーマッタ
    SQLスプリッタ
    SQLパラメータバインド
    JSONフォーマッタ
    XMLフォーマッタ
    YAMLフォーマッタ
    GraphQLフォーマッタ
    JSON to YAML変換
    YAML to JSON変換
    JSON to TOML変換
    TOML to JSON変換
    HTMLエンティティ エンコード/デコード
    TOML to YAML変換
    YAML to TOML変換
    CSV to SQL INSERT変換
    Markdownテーブル生成
    JSON to XML変換
    XML to JSON変換
    UUID生成
    ULID生成
    パスワード生成
    ハッシュ生成
    Lorem Ipsum ジェネレーター
    Lorem Picsum画像URL生成ツール
    テストデータ生成
    QRコード生成
    S3パス解析・変換
    IPアドレス計算
    サブネット分割
    サブネット統合
    CloudFront署名URL生成
    RDS接続文字列ジェネレーター
    座標変換ツール
    位置情報フォーマット一括変換
    JWTデコード・解析
    Basic認証
    パスワード強度分析
    クレジットカードバリデーター
    PIIマスク(個人情報難読化)
    RSA鍵ペア生成ツール
    文字ケース変換
    ローマ字変換
    ローマ数字変換ツール
    フォネティックコード変換ツール
    文字数カウンター
    テキストDiff
    HTMLタグ除去
    正規表現テスター
    色情報変換
    ダイスロール
    Crontab ジェネレーター
    Crontab パーサー
    絵文字ピッカー
    Unixタイムスタンプ変換ツール
    HTTP ステータスコード検索
    ポート番号検索
    MIMEタイプ検索
    Base64ファイル変換
    画像Base64エンコード/デコード
    User-Agent パーサー
    URLパーサー
    OGPチェッカー
    コミットメッセージジェネレーター
    Chmod Calculator
    ターミナルGIFメーカー
    .envパーサー・バリデータツール
Ctrl+K

RSA鍵ペア生成ツール

RSA公開鍵と秘密鍵のペアをブラウザ上で生成します

デフォルト: 2048ビット

鍵ペアを生成中です...

PEM鍵の検証

公開鍵または秘密鍵のPEMを貼り付けて、有効かどうかを確認できます

使い方

このツールについて

このRSA鍵ペア生成ツールは、開発・SSH・TLS・JWTの検証用に公開鍵と秘密鍵が必要なときに使用します。日常的なテストには2048ビット、より強度の高いペアが必要な場合は4096ビットを選び、OpenSSL系ワークフローに適したPEM形式(PKCS#8形式の秘密鍵とX.509形式の公開鍵)でエクスポートできます。 生成処理はすべてブラウザ内で完結します。鍵はお使いの端末上で作成され、Handy Dev Toolsのサーバーにはアップロードされません。これは本番以外の用途であっても、秘密情報を扱う際に重要なポイントです。ツールは無料で、アカウントも不要です。 独自の安全な鍵管理プロセスに従わない限り、生成した鍵は開発用の認証情報として扱ってください。現実的なテストには2048ビット以上を推奨し、秘密鍵をソース管理や共有チャットに含めないようにしてください。

使い方

1. ページを開くと、デフォルト(2048ビット)で鍵ペアが自動生成され、公開鍵と秘密鍵が表示されます。 2. 鍵長を変更する場合: 鍵長入力欄に512〜8192ビットの8の倍数の値を入力し、「生成」ボタンをクリックします。 3. 同じ鍵長で新しい鍵ペアを生成する場合: 「更新」ボタンをクリックします。 4. 鍵のコピー: 各鍵の表示欄にあるコピーボタンをクリックすると、クリップボードにコピーされます。 5. 鍵のダウンロード: 各鍵の表示欄にあるダウンロードボタンをクリックすると、PEM形式のファイルとしてダウンロードされます(公開鍵: public_key.pem、秘密鍵: private_key.pem)。

オプション

鍵長: 512〜8192ビットの範囲で、8の倍数である必要があります。デフォルトは2048ビットです。数値入力欄の上下ボタンで8ずつ増減できます。無効な値(範囲外、8の倍数でない)を入力すると、エラーメッセージが表示され、「生成」と「更新」ボタンが無効化されます。

ユースケース

• SSH接続用の鍵ペア生成(公開鍵認証の設定) • SSL/TLS証明書の秘密鍵生成 • JWT署名用の鍵ペア生成 • 暗号化通信の鍵ペア生成 • 開発・テスト環境での一時的な鍵ペア生成 • コード署名用の鍵ペア生成

コード例

JavaScript (Web Crypto API)
Read Only
1// 鍵ペアの生成
2const keyPair = await window.crypto.subtle.generateKey(
3  {
4    name: 'RSA-OAEP',
5    modulusLength: 2048,
6    publicExponent: new Uint8Array([1, 0, 1]), // 65537
7    hash: 'SHA-256',
8  },
9  true, // extractable
10  ['encrypt', 'decrypt']
11);
Python (cryptography)
Read Only
1from cryptography.hazmat.primitives.asymmetric import rsa
2from cryptography.hazmat.primitives import serialization
3
4# 鍵ペアの生成
5private_key = rsa.generate_private_key(
6    public_exponent=65537,
7    key_size=2048
8)
9public_key = private_key.public_key()
10
11# PEM形式でエクスポート
12private_pem = private_key.private_bytes(
13    encoding=serialization.Encoding.PEM,
14    format=serialization.PrivateFormat.PKCS8,
15    encryption_algorithm=serialization.NoEncryption()
16)
17public_pem = public_key.public_bytes(
18    encoding=serialization.Encoding.PEM,
19    format=serialization.PublicFormat.SubjectPublicKeyInfo
20)
OpenSSL(基本)
Read Only
1# 2048ビットのRSA秘密鍵を生成
2openssl genrsa -out private_key.pem 2048
3
4# 公開鍵を抽出
5openssl rsa -in private_key.pem -pubout -out public_key.pem
OpenSSL / ssh-keygen(実務)
Read Only
1# PEM → OpenSSH公開鍵変換
2ssh-keygen -f public_key.pem -i -m PKCS8
3
4# フィンガープリント確認
5openssl rsa -in private_key.pem -check
6
7# 公開鍵からCSR生成
8openssl req -new -key private_key.pem -out csr.pem
PHP (openssl_pkey_new)
Read Only
1$config = [
2    'private_key_bits' => 2048,
3    'private_key_type' => OPENSSL_KEYTYPE_RSA,
4];
5$key = openssl_pkey_new($config);
6openssl_pkey_export($key, $privatePem);
7$details = openssl_pkey_get_details($key);
8$publicPem = $details['key'];
9
10// openssl_pkey_export は OpenSSL/PHP により PKCS#1 (BEGIN RSA PRIVATE KEY) を出すことがある
11// 本ツールは PKCS#8 (BEGIN PRIVATE KEY) を出力する
Laravel (Passport / JWT)
Read Only
1// .env には PEM 本体ではなくファイルパスを書く
2// JWT_ALGO=RS256
3// JWT_PRIVATE_KEY=file:///var/www/certs/private_key.pem
4// JWT_PUBLIC_KEY=file:///var/www/certs/public_key.pem
5
6// Laravel Passport
7// php artisan passport:keys
8// または本ツールの PEM を storage/oauth-private.key
9// と storage/oauth-public.key にコピー

技術的な仕組み

RSA鍵ペアの生成には、Web Crypto APIを優先的に使用します。Web Crypto APIが利用できない場合や、PEM形式への変換に失敗した場合は、node-forgeライブラリにフォールバックします。生成された鍵はPEM形式で、秘密鍵は PKCS#8(-----BEGIN PRIVATE KEY-----)、公開鍵は X.509 SubjectPublicKeyInfo(-----BEGIN PUBLIC KEY-----)です。鍵長が大きいほど生成に時間がかかりますが、2048ビットの鍵ペアは通常5秒以内に生成されます。すべての処理はブラウザ内で完結し、鍵はサーバーへ送信されません。

プライバシーとデータの扱い

鍵の生成はすべてブラウザ内で完結し、生成された公開鍵・秘密鍵をサーバーへ送信しません。鍵はブラウザのメモリ上にのみ存在し、自動保存されません。秘密鍵は機密情報であるため、適切に管理し、不要になったらブラウザを閉じるなどしてメモリからクリアしてください。FAQ やサンプルコードに鍵を貼り付けないでください。本番用の鍵は、可能であれば隔離された信頼できる環境で生成することを推奨します。

よくある質問

Q: RSA鍵ペアとは?
A: RSA鍵ペアは、暗号化・署名・SSH・TLS・JWTで使用される公開鍵と、それに対応する秘密鍵のセットです。公開鍵は共有できますが、秘密鍵は秘密にしておく必要があります。
Q: どの鍵サイズを使うべきですか?
A: 一般的な開発やテストには2048ビットを使用してください。より強固なセキュリティが必要な場合は4096ビットを推奨します。レガシー環境での実験を除き、512ビットなど非常に小さいサイズは避けてください。
Q: 鍵はサーバーにアップロードされますか?
A: いいえ。生成はブラウザ内で行われます。鍵はHandy Dev Toolsのサーバーには送信されません。
Q: どの形式でエクスポートできますか?
A: OpenSSL系ワークフローに適したPEM形式で出力されます(PKCS#8形式の秘密鍵 / X.509形式の公開鍵)。コピーまたはダウンロードしてローカルで利用できます。
Q: 無料ですか?
A: はい。登録は不要です。
Q: PHPでこのツールと同じ鍵ペアを生成するには?
A: openssl_pkey_new() に OPENSSL_KEYTYPE_RSA と 2048 などの鍵長を渡し、秘密鍵は openssl_pkey_export()、公開鍵は openssl_pkey_get_details() で取得します。このページの PHP コード例を参照してください。openssl_pkey_export() は OpenSSL/PHP の版により PKCS#1(BEGIN RSA PRIVATE KEY)を出すことがあり、本ツールは PKCS#8(BEGIN PRIVATE KEY)です。どちらも一般的に利用できます。
Q: 生成した鍵は Laravel の JWT や Passport にそのまま使えますか?
A: 開発用途では使えます。本ツールは PKCS#8 秘密鍵と X.509(SPKI)公開鍵を出力し、Laravel Passport や RS256 の JWT ライブラリ(例: tymon/jwt-auth)が受け付けます。.env の JWT_PRIVATE_KEY / JWT_PUBLIC_KEY に PEM のファイルパスを指定するか、Passport なら storage/oauth-private.key と storage/oauth-public.key にコピーしてください。秘密鍵はコミットせず、ブラウザ生成の鍵は独自の鍵管理がない限り開発用として扱ってください。