RSA暗号化・復号(RSA-OAEP)
公開鍵(PEM)でテキストをRSA-OAEP暗号化してBase64にし、対応する秘密鍵(PEM)で復号します。暗号化にはブラウザ標準のWeb Crypto APIを使い、処理はすべてブラウザ内で完結します。入力したテキストや鍵がサーバーに送信されることはありません。鍵ペアは 鍵ペア生成 で作れます。パスワードで暗号化したい場合は テキスト暗号化・復号(AES) をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
使い方
- 「暗号化」か「復号」を選びます。
- 暗号化は公開鍵、復号は秘密鍵のPEMを鍵欄に貼り付けます。
- テキスト(復号では暗号文)を入力し、「暗号化する」または「復号する」を押します。
- 結果を「コピー」して使います。
注意事項
- 平文の上限は鍵のビット数 ÷ 8 − 66 バイトです(RSA-2048で190バイト、3072で318バイト、4096で446バイト)。日本語は1文字3バイトで数えます。長いデータは、AESで暗号化して、そのAES鍵だけをRSAで暗号化する方法(ハイブリッド暗号)が一般的です。
- 対応する鍵は、RSAの公開鍵(BEGIN PUBLIC KEY、SPKI)と秘密鍵(BEGIN PRIVATE KEY、PKCS#8)です。OAEPのハッシュはSHA-256固定のため、SHA-1など別設定の他ツールの暗号文は復号できないことがあります。
- 秘密鍵は他人に見せないでください。本番で使う秘密鍵を入力するのは避け、動作確認やテスト用の鍵で使うのが安全です。入力内容はこのページ内にのみ保持され、送信・保存されません。
- 暗号化のたびにOAEPのランダム値が加わるため、同じ入力でも毎回異なる暗号文になります。どれも秘密鍵で復号できます。
用語解説
RSA-OAEP
RSA暗号にパディング(OAEP)を組み合わせた方式です。ランダム値を加えるため、同じテキストでも毎回違う暗号文になり、安全性が高まります。
公開鍵・秘密鍵
公開鍵は暗号化専用で、公開して構いません。秘密鍵は復号に使う鍵で、持ち主だけが保管します。
PEM(SPKI・PKCS#8)
鍵をBase64のテキストで表した形式です。公開鍵は「BEGIN PUBLIC KEY」(SPKI)、秘密鍵は「BEGIN PRIVATE KEY」(PKCS#8)で始まります。
よくある質問
暗号化できるテキストの長さに上限があるのはなぜですか?
RSAは鍵の長さを超えるデータを一度に暗号化できず、OAEPのパディング分も差し引かれるためです。SHA-256のOAEPでは「鍵のビット数÷8−66」バイトが上限で、RSA-2048なら190バイト(日本語で約63文字)です。長いデータはAESで暗号化し、その鍵だけをRSAで暗号化してください。
「公開鍵が必要です」「秘密鍵が必要です」と出るのはなぜですか?
暗号化には公開鍵(BEGIN PUBLIC KEY)、復号には秘密鍵(BEGIN PRIVATE KEY)を使います。モードと鍵の種類が逆になっていると、このエラーになります。
どの形式の鍵が使えますか?
RSAの公開鍵(SPKI、BEGIN PUBLIC KEY)と秘密鍵(PKCS#8、BEGIN PRIVATE KEY)のPEMです。「BEGIN RSA PRIVATE KEY」(PKCS#1)やEC・Ed25519の鍵は使えません。「鍵ペア生成」ツールで作ったRSA鍵はそのまま使えます。
OpenSSLなど他のツールで作った暗号文を復号できますか?
OAEPのハッシュがSHA-256(MGF1もSHA-256)で、Base64にした暗号文であれば復号できます。SHA-1やPKCS#1 v1.5パディングで作った暗号文は復号できません。
同じテキストなのに暗号化のたびに結果が変わるのはなぜですか?
OAEPが暗号化のたびにランダムな値を加えるためで、仕様どおりの動作です。どの結果も同じ秘密鍵で復号できます。
このページをシェア
