![パスワードの暗号化と復号化[閉じる]](https://linux33.com/image/89119/%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96%E3%81%A8%E5%BE%A9%E5%8F%B7%E5%8C%96%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
パスワードをtxtファイルにプレーンテキストとして保存しました。それでは、txtファイルからプレーンテキストを読み、それを暗号化して復号化するスクリプトを作成したいと思います。
答え1
パスワードを暗号化したままにできない場合は、パスワードを暗号化しても役に立ちません。一度復号化すると再び脆弱になります。
どんなに難しい暗号化と復号化方法でも、誰でも確認してコピーして貼り付けることができます。これは状況をより愚かにするだけです。
chmod
Rube Goldbergシステムよりも垣間見ることからよりよく保護されますが、少し作業するだけで保存されたパスワードを完全に使用しない可能性があるため、本当に良いことになります。理由:検索可能な保存されたパスワードはセキュリティ上の問題なので避けるべきです。これは悪い考えであり、避けることができるsudo
だけsu
でなく、ユーザーがそれを使用しないように特別に設計されていますssh
。scp
sftp
パスワードの入力を求める場合は、パスワードは制限されていますが、操作を自動化したり、openssl
。
$ echo foobar | openssl enc -aes-128-cbc -a -salt -pass pass:asdffdsa
U2FsdGVkX1/lXSnI4Uplc6DwDPPUQ/WjHULJoKypTO8=
$ echo U2FsdGVkX1/lXSnI4Uplc6DwDPPUQ/WjHULJoKypTO8= | openssl enc -aes-128-cbc -a -d -salt -pass pass:asdffdsa
foobar
またはこれを行うことができ、
$ touch pass.txt && echo foobar > pass.txt
$ openssl bf -a -salt -in pass.txt -out secret && rm -f pass.txt
enter bf-cbc encryption password:
Verifying - enter bf-cbc encryption password:
$ openssl bf -d -a -in secret -out pass.txt
enter bf-cbc decryption password:
$ cat pass.txt
foobar
答え2
ホイールを再発明したいようです。私の個人的な提案は、好きな方法でソートされたパスワードを含むテキストファイルを作成することです(各行には一意のユーザー名、パスワード、および所属するサイトがありますか?)。
gpg --full-gen-key
4096ビットRSAキーを生成するには、「RSAとRSA」選択を使用します。あるいは、2048ビットも技術的にまだ安全に使用できます。 2048ビット以下に下がらないでください。
gpg -e passwords.txt
ファイルに含まれるパスワードを使用してファイルを暗号化します。
受信者の名前(自分)を入力してください。次に、完了したらpassword.txt.gpg
存在することを確認します。次に、元の(暗号化されていない)passwords.txtを削除します。
今簡単な部分が出てきます。
ファイルのパスワードのいずれかが必要な場合は、次を実行します。
gpg -d passwords.txt.gpg
RSAキーを生成するときに選択したパスワードだけを覚えてください。暗号化されていない内容はstdout(使用中の端末)にダンプされます。レモン豆を簡単に絞ってみてください。
RSAの代替案は、次のキー生成方法を使用することです。
gpg --full-gen-key --expert
次に、オプション9 - 「ECCとECC」を選択します。アルゴリズムはBrainpool P-512を選択してください。キー生成はRSAよりはるかに高速で、キーサイズは小さく、それほど安全です。本当に個人的な好みです。私の答えの残りの部分(パスワードファイルの暗号化/復号化)はまだ適用されています。
または、次に進むことができます。スーパーライヤー簡単な方法は、KeePassXなどの事前作成されたソフトウェアを使用してパスワードを暗号化して保存することです。