密码加密与解密

密码加密与解密

我已将密码以纯文本形式存储在 txt 文件中。现在我想编写脚本,从 txt 文件中读取纯文本,然后对其进行加密和解密。

答案1

当您无法保持密码加密时,对其进行加密是没有用的。一旦你解密它,它就会再次受到攻击。

无论加密和解密方法有多困难,任何人都可以查看和复制粘贴。这只会让事情变得更愚蠢。

chmod与鲁布·戈德堡机器相比,它可以更好地防御窥探,但通过一些工作,您可能可以完全避免使用存储的密码,这将是一件非常好的事情。因为:可检索存储的密码是安全问题,应避免使用。它们是一个糟糕的主意sudosu不仅要避免它们,它们都是专门为阻止您使用它们而设计的sshscpsftp

如果您打算让它提示您输入密码,该密码的用途有限,但我会考虑操作自动化或其他东西的可能性,您可以使用像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使用选择“RSA 和 RSA”生成 4096 位 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 这样的预制软件来加密存储密码。

相关内容