2015-12-02 73 views
3

我对Linux和脚本很陌生,但我想创建一个脚本运行openssl来测试各种密码。我知道密码,并且我知道它是用openssl加密的,但我不知道使用了哪个密码。我一直试图通过每次手动更改密码,但我认为理解脚本如何做到这一点可能值得搞清楚。 我一直在使用该命令bash脚本运行各种openssl密码来解密文件

openssl bf -d -in file.enc -out file.dcrypt 

这提示我输入密码。 我有一个文本文件保存所有密码,我希望尝试每一行在一行。

我想循环操作,并通过每个密码来查看哪个工作。将变量显示为dcrypt文件名称的一部分也不错。 是伪代码

start loop n(first line in txt file to eof) 
openssl 'n' -d -in file.enc -out file.dcrypt.n (a way to add the password?) 
exit eof 

任何帮助,将不胜感激。

回答

2

所以玩了一个简单的循环后,我想出了这个。它的工作原理,我真的很惊讶,解决方案是多么直截了当。不知道这是否是最好的解决方案,但它的工作原理!我可以更改我运行的每个脚本的输出目录,以便我的结果不会相互覆盖。 Ciphers.txt包含每行的密码格式

#!/bin/bash 
#script to automate openssl testing 
while read p; do 

openssl $p -d -in encrypted.txt -out test1234/$p.jpg -pass pass:1234 
done <ciphers.txt 

任何意见或批评都是赞赏的。

+0

这将遍历文件中的每一行,即使第一行有效。你应该检查'openssl'的退出状态(在命令运行后它将被存储在'$?'中),如果它为0则表示成功。 – miken32