OpenSSL+パスワードでファイルの暗号化/復号処理

以下のコマンドを入れるとパスワードが求められるので、入力すると暗号化できる。
plain.txtは平文の入力ファイル、encrypted.txtは暗号化された出力ファイル。

openssl.exe aes-256-cbc -e -out encrypted.txt -in plain.txt

以下のコマンドを入れるとパスワードが求められるので、正しく入力すると復号できる。
encrypted.txtは暗号化された入力ファイル、plain.txtは平文の出力ファイル。

openssl.exe aes-256-cbc -e -out plain.txt -in encrypted.txt

試しに、

test

という文字列のファイルを暗号化してメモ帳で開いた所、
aa
となった。

注意点

パスワードで暗号化されたファイルの復号処理を試みるのはオフライン攻撃と言われ、ファイル自体を入手してしまえば解読は比較的容易です。 十分な桁数、辞書にない文字列を用いる、大文字小文字記号などを用いれば多少はマシでしょう。 簡単にはファイルを持ち出せないような環境下などで、あくまで気休め程度に考えたほうが良いです。

余談:Windowsでopensslを使うには

以下のサイトでインストーラがダウンロードできるらしい。
Shining Light Productions: http://slproweb.com/products/Win32OpenSSL.html

が、別の方法を見つけた。 gitのサイトでPortable版が公開されており、この中にopensslが入っている。
git: https://git-scm.com/download/win

64bit版のバージョン2.11.0で、PortableGit\mingw64\bin\openssl.exeを確認。
他にもLinux系のコマンドが幾つか入っているので、便利そう。

ただし正式版かどうかはよく分からないので、ご利用は自己責任で。

関連記事


  1. Spring Security + ThymeleafでAjaxリクエストにCSRF対策トークンを適用
  2. 一部のパスだけSpring SecurityのCSRF対策を無効化する
  3. SRIによってCDN上のスクリプト改ざんを検知する
  4. TrueCryptのレビューレポートを読んでみた
  5. Google ChromeのSSL/TLS暗号化アルゴリズム設定

tosi avatar
tosi
Web Application Engineer, Java / Spring / Azure / GCP
comments powered by Disqus