RSA暗号化・復号ツール
RSA公開鍵で暗号化し、秘密鍵で復号します(OAEPまたはPKCS#1 v1.5)。
openssl pkeyutl -decrypt -inkey private.pem -in ciphertext.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256短い秘密情報を相手のRSA公開鍵(または証明書)で暗号化して、秘密鍵の持ち主だけが読めるようにしたり、自分の秘密鍵で暗号文を復号したりできます。パディングはOAEP(SHA-256、推奨)、OAEP(SHA-1)、PKCS#1 v1.5から選べ、結果はBase64かhexで、OpenSSLとそのままやり取りできます。すべてブラウザ内で動作するため、鍵もメッセージも端末の外に出ることはありません。無料で登録も不要です。
RSAで暗号化・復号する方法
- 「暗号化」か「復号」を選び、鍵を貼り付けるか鍵ファイルを開きます。暗号化には公開鍵か証明書、復号には秘密鍵(PKCS#8またはPKCS#1)を使います。
- パディングを選びます。相手がほかの方式を必要としていなければ、「OAEP · SHA-256」です。
- メッセージを入力するか、暗号文をBase64かhexで貼り付けます。結果は入力に合わせて表示されます。
- 結果をコピーするか、OpenSSL用に暗号文を.binファイルでダウンロードします。
主な機能
- 公開鍵、証明書、秘密鍵の公開部分で暗号化し、秘密鍵で復号
- OAEP(SHA-256、初期設定)、OAEP(SHA-1)、PKCS#1 v1.5
- PEMまたはDERの鍵:SPKI、PKCS#1、PKCS#8、X.509証明書(最大16384ビット)
- 暗号文はBase64・hex、または.binファイルで出力。貼り付けたBase64・hexや、開いた.binファイルを復号
- 鍵とパディングで暗号化できるバイト数と、対応するopenssl pkeyutlコマンドを表示
- ブラウザ内のWebAssemblyワーカーで動作
プライバシーは守られますか?
はい。暗号化と復号はブラウザ内のWebAssemblyワーカーで行われます。鍵、メッセージ、暗号文がアップロードや保存されることはありません。
よくある質問
メッセージはどのくらいの長さまで暗号化できますか?
RSAで暗号化できるのは1ブロックだけです。2048ビットの鍵なら、OAEP SHA-256で190バイト、OAEP SHA-1で214バイト、PKCS#1 v1.5で245バイトまでで、鍵が大きいほど長くなります。それより長いデータは共通鍵暗号で暗号化するか、「ファイル暗号化」を使ってください。
暗号文が毎回違うのはなぜですか?
どのパディングも暗号化の前にランダムなバイトを加えるため、同じメッセージでも毎回新しい暗号文になります。これは設計どおりの動作で、どの暗号文も同じメッセージに復号されます。
OpenSSLと互換性はありますか?
はい。ここで作った暗号文は openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256(またはrsa_padding_mode:pkcs1)で復号でき、openssl pkeyutl -encryptで作った暗号文もここで復号できます。両側で同じパディングを使ってください。
どの形式の鍵を使えますか?
PEMの公開鍵(BEGIN PUBLIC KEYまたはBEGIN RSA PUBLIC KEY)、証明書、そして暗号化されていないPKCS#8(BEGIN PRIVATE KEY)またはPKCS#1(BEGIN RSA PRIVATE KEY)の秘密鍵で、DERファイルにも対応しています。パスワードで保護された鍵やOpenSSHの鍵は先に変換が必要で、その方法はツールが表示します。
復号に失敗するのはなぜですか?
たいていはパディングか鍵が原因です。暗号化に使ったのと同じパディングで、使われた公開鍵と対になる秘密鍵で復号してください。ツールは意図的にどれが原因かを区別しないので、ほかのパディングも試してみてください。暗号文は常に鍵と同じ長さ(2048ビットの鍵なら256バイト)なので、それより短ければコピーのときに途中で切れています。