perl中的openssl解密密码问题

时间:2012-01-19 23:14:40

标签: openssl

我在分析在perl中的系统调用中传递时如何处理参数时遇到困难。

以下代码运行时。 。 。 。

$password = ‘t5!rEDRkbYG@BJd!’;
system("pv myfile.aes | openssl enc -d -pass pass:$password -rc4 | md5sum > Decrypted.md5");

代码在不同的系统上产生不同的哈希值。

在原始系统上崩溃,类似的代码运行,文件被加密并成功解密。

在另一台机器上执行代码时,代码会运行,但明文无效。 我们认为问题在于密码中的特殊字符。我们可以解决这个问题,但是,需要知道pass参数中实际传递了什么来解密旧系统中的一些数据。

认为它与shell如何解释密码有关。任何帮助,将不胜感激。

感谢。


马克,谢谢你的回应。

代码在Ubuntu 11.10中运行,bash是shell。

我试图以交互方式解密并在提示时键入密码,因此应传入感叹号,但我会尝试转义感叹号以防万一。

这似乎更像是一个双重解析问题。

我回复了密码,得到了以下内容。

echo t5!rEDRkbYG@BJd!

bash:!rEDRkbYG @ BJd!:找不到活动

(我正在尝试将上述错误文本作为密码以防万一。)

在perl打印“t5!rEDRkbYG @ BJd!”;给t5!rEDRkbYG!然后bash必须在对openssl的调用中再次解析密码。如果我回复t5!rEDRkbYG! 。 。

echo t5!rEDRkbYG! 

我得到“bash:!rEDRkbYG!:找不到事件”

我正在运行一些密码测试,但与此同时,有没有人对如何查看所有解析的结果有任何想法?

马克,再次感谢!

0 个答案:

没有答案