gpt4 book ai didi

multithreading - 多线程(bash)时将输出与函数分开

转载 作者:行者123 更新时间:2023-12-03 13:12:45 24 4
gpt4 key购买 nike

我正在尝试对.zip密码破解程序进行编程(以解密我忘记了密码的旧.zip文件),并且我想使其更快。

我认为速度限制是通过解压缩(使用unzip -t -P)来测试密码的。我以为我
如果我复制原始文件并使用密码生成器对其进行测试,则可以使其速度更快(直到现在,我仅使用seq来测试数字并使用word来测试单词)。我的问题是,我无法分别输出数字和“单词”。

我这样尝试过:

generate (){

seq 0 999999 & generatewords 5 1 a A

}

check (){

generate | while read password; do

unzip -tqqq -P $password $file &>/dev/null

if [ $? = 0 ]; then

echo -e "Password found:\n\n\"$password\"" && exit

fi

done

}

但是从逻辑上讲,我只将数字和单词混合在一起作为输出。有什么办法可以将它们分开,并将它们作为下一个函数的参数,以便可以在更多文件上使用?如果其中之一匹配,脚本应退出。你能用bash做到吗?欢迎其他改进。

对不起,我的英语不好,格式不好:/

最佳答案

是的,您可以只使用$1并从其他功能运行您的检查功能

check (){
read password
unzip -tqqq -P $password $file &>/dev/null
if [ $? = 0 ]; then
echo "Password is a $1"
echo -e "Password found:\n\n\"$password\"" && exit
fi;}

generate (){
while true; do
seq 0 999999 | check number
generatewords 5 1 a A | check word
done;}

您可以按照我想要的任何方式使用 $1,这只是一个建议。

关于multithreading - 多线程(bash)时将输出与函数分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21514197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com