带Bash的彩虹桌
我正在考虑在bash中通过循环2个文件来创建彩虹表,但我在语法方面遇到了问题。我有两个文本文件,一个是带Bash的彩虹桌,bash,openssl,Bash,Openssl,我正在考虑在bash中通过循环2个文件来创建彩虹表,但我在语法方面遇到了问题。我有两个文本文件,一个是filename,它有一个常用密码列表,另一个是saltList,它有一个小密码列表的salt。目前,脚本将执行,但不会停止(我昨天运行了大约3-4个小时)。我这样做对吗?我检查了rainbowCracker.txt文件,其中有值$1$fa7eb627$NRWF9wGqdr4rjHmrxmxI80,但它似乎从未停止过 saltList=$(tr ' ' '\n' < ${s
filename
,它有一个常用密码列表,另一个是saltList
,它有一个小密码列表的salt。目前,脚本将执行,但不会停止(我昨天运行了大约3-4个小时)。我这样做对吗?我检查了rainbowCracker.txt文件,其中有值$1$fa7eb627$NRWF9wGqdr4rjHmrxmxI80
,但它似乎从未停止过
saltList=$(tr ' ' '\n' < ${saltFile})
for line in $filename; do
for salt in $saltList; do
openssl passwd -1 -salt $salt $line >> rainowbowCracker.txt
done
done
saltList=$(tr''\n'<${saltFile})
对于$filename中的行;做
对于$saltList中的盐;做
openssl密码-1-salt$salt$line>>rainowbowCracker.txt
完成
完成
bash中循环行的惯用方法是使用while构造:
试试这个:
while read a; do
while read b; do
echo $a $b
done < saltlist.txt
done < passwords.txt
在读取一个文件时;做
读b的时候;做
回声a$b
完成
另一种方法是先将所有内容读入内存。如果文件足够小,则此操作有效:
salts=($(< salts.txt))
for s in ${salts[@]}; do
echo $s
done
salts=($(
我会用openssl passwd-1-salt$salt$line>>rainowbowCracker.txt
替换echo$a$b
吗?是的。试试看;-)成功了!for
循环在bash中不常用吗?它们被使用。但是while循环构造的要点是,它通过文件的行“流式传输”,并通过读取内置代码优雅地处理换行。更现代的语言支持迭代器,使您能够以内存有效的方式在行上进行循环。Bash是一种非常原始的语言。它通常没有什么优雅之处:-D