我正在尝试实现以下bash命令在Python中提供的功能。
echo "$DATA" | gpg --symmetric --armor --batch --passphrase "${KEY}"
到目前为止,我已经尝试使用subprocess
但在传递数据方面遇到困难。我尝试将其作为要发送的参数列表中的命令给出,subprocess
但这只是有效地回响了整个过程。
cmd = f"| gpg --symmetric --armor --batch --passphrase {key}".split()
temp = ["echo", f"\"{data}\""]
temp.extend(cmd)
res = subprocess.run(temp, stdout=subprocess.PIPE, universal_newlines=True)
encrypted = res.stdout.strip()
我也对使用python-gnupg模块感兴趣,但还没有弄清楚如何用它复制上面的内容。
在此先感谢您的帮助!
您可以input
对run()
/使用参数check_output()
:
from getpass import getpass
import subprocess
key = getpass("KEY: ")
data = b'Symmetric Encryption with GPG and Subprocess'
command = ["gpg", "--symmetric", "--armor", "--batch", "--passphrase", key]
out = subprocess.check_output(command, input=data, universal_newlines=False)
注意,echo
默认情况下,GNU将添加换行符。使用echo -n
不打印尾随\n
。无论哪种方式,您都需要小心地在Python中模仿它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句