我有一个命令cat hash.bin | openssl pkeyutl -sign -inkey privk.pem
,它可以正确地得到结果。在
现在我想用python subprocess
来做,我是这样做的(这里hash
是从这里读取的)哈希.bin)在
cmd = ['openssl', 'pkeyutl', '-sign', '-inkey ', prvk]
p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=STDOUT)
out = p.communicate(input=hash)[0]
print(out)
但是openssl失败了。在
我不能使用-in
和-out
,因为我的代码无法访问硬盘。。在
该问题是由
inkey
命令后的空格字符引起的。在尝试移除空间,它应该可以工作:
原因是
^{pr2}$Popen()
作为-inkey
选项标记的一部分传递空格字符。openssl决定不存在名为-inkey
(带空格)的选项,因此它退出。就像是从命令行执行:失败了。在
相关问题 更多 >
编程相关推荐