5
3

More than 5 years have passed since last update.

How-to: OpenSSL を使用してファイルを RSA 暗号化する

Posted at

[!NOTE]
この記事は 2012/10/14 に momoto.github.io へ投稿した内容を Qiita へ移行してきたものです

OpenSSL は様々な暗号方式による暗号化および復号化をサポートするセキュリティライブラリで、使用可能な暗号方式は openssl ciphers で確認できます。

RSA暗号方式の 暗号化、復号、署名、検証 を利用する場合は openssl rsautl を使用します。

暗号化

ファイルをRSA暗号方式で暗号化するには、秘密鍵または公開鍵のいずれかが必要になります。

秘密鍵“private_key”を使用して、ファイル“plain.txt”を暗号化する
$ openssl rsautl -encrypt -inkey private_key -in plain.txt -out encrypted
Enter pass phrase for private_key:

## 秘密鍵にパスフレーズが設定されていればパスフレーズの照合が必要です
公開鍵“public_key”を使用して、ファイル“plain.txt”を暗号化する
$ openssl rsautl -encrypt -pubin -inkey public_key -in plain.txt -out encrypted

## -pubin のオプションを加えることに注意します

上のコマンドで暗号化した場合、encrypted という名前でバイナリファイルとして出力されます。unable to load Public Key とエラーになってしまう場合は、鍵の形式が無効です。使用できる公開鍵は次のような形式です。

-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM2twTjVLOYMK2Y7uKQ03CeSc8B+0GjJ
xy0ir28fIfGb523ogDyWKDjMDx5pTBUpOgDYUgSpP/I6SzER1ArhcnMCAwEAAQ==
-----END PUBLIC KEY-----

復号

暗号化されたファイルを復号するには、秘密鍵が必要です。

秘密鍵“private_key”を使用して、暗号化されたファイル“encrypted”を復号する
$ openssl rsautl -decrypt -inkey private_key -in encrypted -out decrypted.txt
Enter pass phrase for private_key:

## 復号に成功すると、“decrypted.txt”にその内容が出力されます
5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3