如何在 bash 脚本中解密 AES 密码?

kin*_*er1 3 linux shell

我需要使用密码登录 MySQL DB。但密码是以AES加密算法存储的。

登录名将是:

AES_PASSWORD=2hhbdhbdhbdbh (the encrypted password in AES)
mysql -uroot -p$(AES_PASSWORD)
Run Code Online (Sandbox Code Playgroud)

如何在 shell 中解密并使用它?我搜索了其他类似的查询,但找不到任何与 AES 相关的内容。

Wes*_*ker 6

您需要了解的不仅仅是密码的 AES 字符串。例如,您需要知道它是使用哪种 AES 加密的,以及用于加密它的密钥或密码。

但假设您使用的是 aes256 并且知道密码是“秘密”。你可以这样做:

DECODED=`echo $AES_PASSWORD | openssl enc -d -a -aes256 -pass pass:secret`
Run Code Online (Sandbox Code Playgroud)

然后使用 $DECODED 作为密码参数调用 mysql。

然而,这可能是也可能不是调用 mysql 的最佳方式,因为当有人用“ps”查看进程列表时,密码会以纯文本形式出现在命令行上。