博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
18 已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果
阅读量:5717 次
发布时间:2019-06-18

本文共 2410 字,大约阅读时间需要 8 分钟。

面试题18:破解RANDOM随机数案例

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

21029299

00205d1c

a3da1677

1f6d12dd

890684b

 

[root@jenkins scripts]# cat aa.txt

21029299
00205d1c
a3da1677
1f6d12dd
890684b

[root@jenkins scripts]# cat rd_mat.sh #!/bin/bash############################################################### File Name: rd_mat.sh# Version: V1.0# Author: gaobo# Organization: 641627690@qq.com# Created Time : 2017-12-07 19:57:59# Description:##############################################################for ((i=0;i<=32767;i++))do     for j in `cat /server/scripts/aa.txt`     do           #echo "$(echo $i|md5sum|cut -c 1-8)    ${j}"           if [ "$(echo $i|md5sum|cut -c 1-8)" == "${j}" ]        then        echo  $i       fi     done    done

 

[root@jenkins scripts]# sh rd_mat.sh

1346
7041
25345
25667

 

 

方法二:

 

[root@jenkins scripts]# cat rd_mat.sh #!/bin/bash############################################################### File Name: rd_mat.sh# Version: V1.0# Author: gaobo# Organization: 641627690@qq.com# Created Time : 2017-12-07 19:57:59# Description:##############################################################for ((i=0;i<=32767;i++))do     for j in `cat /server/scripts/aa.txt`     do                      if [[ "$(echo $i|md5sum)" =~ "${j}" ]]        then        echo  $i       fi     done    done

 

现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含“baidu”字符串以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault。方法一:利用grep查找 strA="long string"strB="string"result=$(echo $strA | grep "${strB}")if [[ "$result" != "" ]]then  echo "包含"else  echo "不包含"fi 先打印长字符串,然后在长字符串中 grep 查找要搜索的字符串,用变量result记录结果如果结果不为空,说明strA包含strB。如果结果为空,说明不包含。这个方法充分利用了grep 的特性,最为简洁。方法二:利用字符串运算符 strA="helloworld"strB="low"if [[ $strA =~ $strB ]]then  echo "包含"else  echo "不包含"fi 利用字符串运算符 =~ 直接判断strA是否包含strB。(这不是比第一个方法还要简洁吗!)方法三:利用通配符 A="helloworld"B="low"if [[ $A == *$B* ]]then  echo "包含"else  echo "不包含"fi 这个也很easy,用通配符*号代理strA中非strB的部分,如果结果相等说明包含,反之不包含。方法四:利用case in 语句 thisString="1 2 3 4 5" # 源字符串searchString="1 2" # 搜索字符串case $thisString in  *"$searchString"*) echo Enemy Spot ;;  *) echo nope ;;esa 这个就比较复杂了,case in 我还没有接触到,不过既然有比较简单的方法何必如此方法五:利用替换 STRING_A=$1STRING_B=$2if [[ ${STRING_A/${STRING_B}//} == $STRING_A ]]  then    ## is not substring.    echo N    return 0  else    ## is substring.    echo Y    return 1  fi 这个也挺复杂

 

转载于:https://www.cnblogs.com/gaoyuechen/p/8000944.html

你可能感兴趣的文章
SharePoint 读取 Site Columns 的数据并绑定到DropdownList
查看>>
Python中的对象行为与特殊方法(二)类型检查与抽象基类
查看>>
使用 axios 详解
查看>>
通信基站(dfs回溯,思维)
查看>>
nginx web加密访问
查看>>
iOS - Regex 正则表达式
查看>>
SYS_CONTEXT函数返回IP地址的一些误解
查看>>
第 68 章 Logical Volume Manager (LVM)
查看>>
膝盖中了一箭之康复篇-第八个月暨2月份目标总结
查看>>
IPA提交APPStore问题记录(一)
查看>>
有利于seo优化的网站地图不能取巧
查看>>
快照产品体验优化
查看>>
ASCII
查看>>
50天!3家!共享单车终于开始了“大逃亡”
查看>>
ibatis SqlMap not found
查看>>
Android SD卡创建文件和文件夹失败
查看>>
Ubuntu 14.04 vsftp refusing to run with writable root inside chroot问题解决方法
查看>>
Intellij IDEA远程调试tomcat
查看>>
hadoop的学习论坛
查看>>
替代Windows Cmd的利器PowerCmd
查看>>