下列字符串 efbaf275cd、4be9c40b8b、44b2395c46、f8c8873ce0、b902c16c8b、ad865d2f63 是通过对随机数变量RANDOM随机执行命令: echo $RANDOM|md5sum|cut –c1-10 后的结果,请破解这些字符串对应的RANDOM值
解题思路:
- 通过外层循环获取对应数字的md5值
- 内循环进行比对,如果md5值相同就打印对应的数字和md5值
- 如果全部找到就退出外层循环,否则退出内层循环
[root@localhost bin]# cat getmd5.sh
#!/bin/bash
# "把字符串存入一个数组"
words=(
efbaf275cd
4be9c40b8b
44b2395c46
f8c8873ce0
b902c16c8b
ad865d2f63
)
count=${#words[@]} #数组长度
for ((i=0;i<=32748;i++)); do
md5=`echo $i | md5sum | cut -c1-10`
for word in ${words[*]}; do
if [ "$md5" = "$word" ]; then
echo $md5 $i
let count--
[ $count -eq 0 ] && break 2 || break #计数器为0则退出整个循环,否则退出当前循环
fi
done
done
############################################
[root@localhost bin]# ./getmd5.sh
ad865d2f63 1000
b902c16c8b 3000
f8c8873ce0 6000
44b2395c46 9000
4be9c40b8b 12000
efbaf275cd 15000