安全にパスワードを教える方法

パスワードをネット越しに教えたい場合なんかに、
チャットとかメールとかいろいろあるけど、ちょっと心配だったりしますよね。

相手が、macとかLinuxだった場合はこんな方法使うと安全で便利です。


方法

例えば「hello world」ってパスワードを教えたい場合、
以下のコマンドをターミナルに入力して暗号化

echo "hello world" | openssl enc -e -aes-256-cbc -salt | base64

実際はこんな感じ

# echo "hello world" | openssl enc -e -aes-256-cbc -salt | base64
# enter aes-256-cbc encryption password:[解凍用パスワードを入力]
# Verifying - enter aes-256-cbc encryption password:[解凍用パスワードを入力]
U2FsdGVkX1/QAnOuv0KxePA2ue9COqx4sK5Qt9B8u/Q=


解凍用パスワードが「test」だった場合、「U2FsdGVkX1/QAnOuv0KxePA2ue9COqx4sK5Qt9B8u/Q=」って文字列が出力されるので

echo "U2FsdGVkX1/QAnOuv0KxePA2ue9COqx4sK5Qt9B8u/Q="  | base64 -D | openssl enc -d -aes-256-cbc -salt

このコマンドと解凍用パスワードを相手に教えればOK。



※1つのメールで両方書いたら意味ないので、コマンドはメールで、解凍パスは電話やチャットなど別々の経路で教える必要がありますよ




上では暗号化アルゴリズムとしてaes-256-cbc使ってますが、暗号化・復号化はopensslつかってるので

aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
aes-256-cbc aes-256-ecb base64 bf
bf-cbc bf-cfb bf-ecb bf-ofb
camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb
camellia-256-cbc camellia-256-ecb cast cast-cbc
cast5-cbc cast5-cfb cast5-ecb cast5-ofb
des des-cbc des-cfb des-ecb
des-ede des-ede-cbc des-ede-cfb des-ede-ofb
des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx idea
idea-cbc idea-cfb idea-ecb idea-ofb
rc2 rc2-40-cbc rc2-64-cbc rc2-cbc
rc2-cfb rc2-ecb rc2-ofb rc4
rc4-40 seed seed-cbc seed-cfb
seed-ecb seed-ofb zlib

など様々な暗号化方式使えます。
とはいえ特別な理由がなければ、aes-256-cbc以外選ぶ事ないと思います。