Shell脚本实战18-破解RANDOM随机数

1. 需求

已知下面的字符串是RANDOM随机数变量经过md5sum处理后,再截取一部分连续字符串的结果,请破解这些字符串在使用md5sum处理前所对应的数字。

1
2
3
4
5
21029299
00205d1c
a3da1677
lf6d12dd
890684b

2. 实现脚本

参考脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
array=( #<==把字符串放到数组里
21029299
00205d1c
a3da1677
lf6d12dd
890684b
)
Path=/tmp/md5.txt
Num=0
funGetMd5()
{
[ -f "$Path" ] || touch $Path
rowNum=$(wc -l < $Path)
if [ $rowNum -ne 32768 ]
then
> $Path
for ((Num=0; Num<=32767; Num++))
do
{
Stat=$(echo $Num | md5sum | cut -c 1-8)
echo "$Stat $Num" >> $Path
}&
done
else
return 0
fi
}
funFindMd5()
{
word=$(echo "${array[@]}" | sed -r 's# |\n#|#g')
grep -E "$word" $Path
}
funcMain()
{
funGetMd5
funFindMd5
}
funcMain

0%