マスターパスワードで暗号化したパスワードをコマンドの引数に記述する

Linux のスクリプトなどで、コマンドの引数でパスワードを直接書く代わりに、予めマスターパスワードで暗号化したパスワードを記述しておき、実行時にマスターパスワードを入力してパスワードを復号してコマンド実行する方法です。

例えば、次のように暗号化したパスワードをコマンド中に書けます。
この例では、実行してマスターパスワード test を入力すると、復号されたパスワード 12345 が、コマンドの引数 -P で指定されます。


COMMAND -P `read -s pass;echo 'U2FsdGVkX19TkMDgEXQkXDI/RoIAsVlZsPHzQnsGj4A=' | openssl aes-256-cbc -d -base64 -k $pass;unset pass`


事前にパスワードをマスターパスワードで暗号化


次のコマンドを実行します。


echo '> master password';read -s pass;echo '> password';read -s text;echo $text|openssl aes-256-cbc -e -base64 -k $pass;unset pass;unset text


Using -iter or -pbkdf2 would be better. と出た場合は、-base64 の後に -pbkdf2 も記述してください。

> master password と表示されたら、マスターパスワードを入力します。
> password と表示されたら、パスワードを入力します。
マスターパスワードで暗号化されたパスワードが表示されます。

> master password で test、> password で 12345 と入力すると、12345 をマスターパスワード test で暗号化した文字が表示されます。

例えば、次のような文字列です。
この文字列は、上記のコマンドを実行するたびに、異なるものが表示されます。


U2FsdGVkX1+wpJ9i/Prk+uQFiL4jZivPn27nd6r4/KM=



実行時にマスターパスワードでパスワードを復号


次の書式でコマンドを実行します。
XXXXXXX の箇所は、暗号化時に表示された、暗号化文字列に置き換えてください。


echo '> master password';read -s pass;echo 'XXXXXXX' | openssl aes-256-cbc -d -base64 -k $pass;unset pass


> master password と表示されたら、暗号化時に指定したマスターパスワードを入力します。
すると、
復号したパスワードを表示します。

例えば、次のように実行します。
この例では、マスターパスワード test で暗号化したパスワード 12345 の暗号化文字列を指定しています。


echo '> master password';read -s pass;echo 'U2FsdGVkX1+wpJ9i/Prk+uQFiL4jZivPn27nd6r4/KM=' | openssl aes-256-cbc -d -base64 -k $pass;unset pass


> master password と表示されたら、暗号化時に指定したマスターパスワード test を入力します。
すると、復号化したパスワード 12345 が表示されます。


次のように ``でくくって、コマンドの引数に渡すことができます。
実行してマスターパスワード test を入力すると、復号されたパスワード 12345 で「COMMAND -P 12345」として実行されます。


COMMAND -P `read -s pass;echo 'U2FsdGVkX19TkMDgEXQkXDI/RoIAsVlZsPHzQnsGj4A=' | openssl aes-256-cbc -d -base64 -k $pass;unset pass`


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント