在不同的计算机上加密和解密密码

时间:2019-05-27 16:26:15

标签: bash openssl

当前,我正在编写一个小脚本,该脚本将加密的密码存储在配置文件中,并在需要使用密码时对其进行解密。我知道这不是最安全的方法,应该只使它对人们“不可读”。我已经用以下密码加密了密码:

echo PasswordToEncrypt | openssl enc -aes-256-cbc -a -salt -pass pass:PasswordForEncryptAndDecrypt

现在,我得到了加密的密码,并试图对其进行解密,它可以正常工作。但是,当我尝试在另一台计算机上解密密码后,它再也无法解密了。另外,如果我再次加密该密码,则该密码看起来与第一台计算机上的加密密码不同。

我的问题是:是否有任何方法可以在不同的计算机上使用openssl加密和解密密码,并且结果相同?这样我可以在Comouter A中加密密码,然后在计算机B中解密密码?

1 个答案:

答案 0 :(得分:1)

如果加密文件并在另一台计算机上对其进行解密,则解密后的数据将相同。否则,加密将变得毫无用处。我认为您会看到不同的输出,因为您忘记了使用-md选项。

要加密:

$ echo TEST | openssl enc -aes-256-cbc -md md5 -salt -pass pass:my_password > enc.bin

并解密:

$ cat enc.bin | openssl enc -d -aes-256-cbc  -md md5 -pass pass:my_password
TEST

只需为您提供使用键的选项:

$ openssl genrsa -out key.priv 4096
$ openssl rsa -in key.priv -pubout -out key.pub
$ echo TEST | openssl enc -aes-256-cbc -md sha256 -salt -pass file:key.pub > tmp.bin
$ cat tmp.bin | openssl enc -d -aes-256-cbc -md sha256 -pass file:key.pub > tmp.txt
TEST