ターミナルでちょっとした文字列の暗号化と複号化

MacOSXでは暗号化と複号化の定番はopnesslコマンドです。

ターミナルで以下のようにする事で文字列の暗号化が出来る。暗号化する為のパスワードを聞いてくるので、適当に打ち込む事。

$ echo '暗号化したい文字列' | openssl enc -e -aes128 | base64

base64が必要な理由は、opnesslの出力がバイナリだから。base64を使うと暗号化後のデータが文字列になるので扱いやすい。

使い方は簡単。例えば、文字列「秘密にした大切な事」を暗号化するには、

$ echo '秘密にしたい大切な事' | openssl enc -e -aes128 | base64
enter aes-128-cbc encryption password: (パスワードを入力)
Verifying - enter aes-128-cbc encryption password: (もう一度パスワードを入力)
U2FsdGVkX18W0ERyPHnFu1rLkHnaytOC61ZDX2j+SIsYEXp4tuD5QTg0M5VvBVQS

と行えば良い。最後に出て来た”U2FsdGVk…….”が暗号化後の文字列。

複号化するには、ターミナルで以下のように打ち込めば良い。複号化の為のパスワードを聞いてくるので打ち込む事。

$ echo '暗号化した文字列' | base64 -D | openssl enc -d -aes128

先ほどの暗号化した文字列を複号化するには、以下のようにする。

$ echo 'U2FsdGVkX18W0ERyPHnFu1rLkHnaytOC61ZDX2j+SIsYEXp4tuD5QTg0M5VvBVQS' | base64 -D | openssl enc -d -aes128
enter aes-128-cbc decryption password: (パスワードを入力)
秘密にしたい大切な事

もちろん、暗号化した時に入力したパスワードを忘れたら元に戻せないので気をつける事。