web-dev-qa-db-ja.com

パスワードの暗号化と復号化

パスワードをプレーンテキストとしてtxtファイルに保存しました。次に、txtファイルからプレーンテキストを読み取るスクリプトを記述し、その後、それを暗号化して復号化します。

8
Sandy

パスワードを暗号化しておくことができない場合、パスワードの暗号化は役に立ちません。あなたがそれを解読した瞬間、それは再び脆弱になります。

暗号化がどれほど難しい場合でも、暗号化と復号化の方法は誰でも見ることができ、とにかくコピーして貼り付けることができます。それは単にそれを愚かにします。

chmodスヌーピングに対する防御はルーブゴールドバーグマシンよりもはるかに優れていますが、いくつかの作業を行うと、保存されているパスワードの使用をまったく回避できる可能性があります。 。理由:検索可能に保存されたパスワードはセキュリティホットポテトであり、回避する必要があります。 Sudosusshscp、および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
13
Rahul

ホイールを再発明したいと思うかもしれません。私の個人的な提案は、見た目が良い方法で整理された希望のパスワードが含まれたテキストファイルを作成することです(一意のユーザー名、パスワード、および各行に属するサイト?)。

gpg --full-gen-keyピッキング「RSAおよびRSA」を使用して、4096ビットのRSA鍵を生成します。または、地獄、2048ビットは技術的に使用しても安全です。 2048ビットより低くしないでください。

gpg -e passwords.txtは、パスワードを含むファイルを暗号化します。

受信者の名前を入力します(これはあなたです)。次に、完了したら、password.txt.gpgが存在することを確認します。次に、元の(暗号化されていない)passwords.txtを削除します。

今簡単な部分。

ファイルにパスワードが必要な場合は、gpg -d passwords.txt.gpgを実行します

覚えておかなければならないのは、RSAキーを生成するときに選択した1つのパスワードだけで、暗号化されていない内容はstdout(使用している端末)にダンプされます。イージースクイーズレモンピージー。

RSAの代わりに、この鍵生成方法を使用することができます。

gpg --full-gen-key --expert

次に、オプション9-"ECC and ECC"を選択しました。アルゴリズムには、Brainpool P-512を選択します。 RSAよりもはるかに高速な鍵生成であり、より小さな鍵サイズで同じくらい安全です。本当に個人的な好み。残りの返信(パスワードファイルの暗号化/復号化)は引き続き適用されます。

または、super duper簡単な方法で、暗号化されたパスワードを保存するためにKeePassXなどの既製のソフトウェアを使用することもできます。

5
William Bonney