密码加解密

San*_*ndy 8 encryption

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

Rah*_*hul 14

当您不能保持加密时,加密密码是没有用的。一旦你解密它,它就会再次受到攻击。

无论加密和解密方法有多难,任何人都可以查看和复制粘贴加密和解密方法。那只会让它更傻。

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
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做,

$ 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
Run Code Online (Sandbox Code Playgroud)


小智 5

听起来您可能想重新发明轮子。我个人的建议是创建一个文本文件,其中包含您想要的密码,以美观的方式为您排列(每行都有唯一的用户名、密码和所属站点?)。

使用生成 4096 位 RSA 密钥 gpg --full-gen-key选择“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 这样的预制软件来存储加密的密码。