分享编写shell脚本暴力破解md5的方法
方法一
单个破解法(以10位数为例)
#!/bin/bash
read -p “please input strings:”
string
for n in {0..33000}
do
Md5=`echo $n |md5sum|cut -c 1-10`
if [ “${Md5}” == “$string” ]
then
echo “$n is sure”
exit
else
echo “$n is no”
fi
done
但是效率很低,不太建议使用。很费时间,匹配时每个都要匹配一遍,匹配下一个,又要从新开始…效率低。
方法二
类似于密码表的对照方法,首先生成密码表,然后在匹配。这样效率大大提升
首先生成密码表,编写脚本,内容如下(总生成了33000个随机数,如果需要,可以自行调节,增加或者减少,同样,随机数位数也可以调整)
#!/bin/bash
for i in `seq 1 33000`#可以调整生成数的个数
do
a=`echo $i|md5sum|cut -c 1-10`#可以调整生成数的位数
echo $i $a >> byq.db
done
生成后可以使用,匹配脚本如下,输入随机字符串即可
#!/bin/bash
read -p “please input some
strings:” n
echo `grep $n byq.db`|cut -d ” ”
-f1
以上内容仅供参考,比较浅显的破解方法,适合我这种初学的人,若是有更好的方法,欢迎各位大神交流指正!
原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/71773