【网络安全 | MD5截断比较】PHP、Python脚本利用

前言

在解题中,当遇到类似

c 复制代码
substr(md5(a),-6,6) == 7788

这样的MD5截断比较的题目时,只有求出a的值才能进行接下来的操作。

一个一个去猜是不可能的,通常使用脚本解决,文末给出实战案例。

PHP循环脚本

php 复制代码
<?php
   for($i=1;$i<999999;$i++)
   if(preg_match("/^8b184b/",substr(md5($i),-6,6))){
      echo $i;
   }
?>

结果如下

Python多线程脚本

py 复制代码
import concurrent.futures
import hashlib

#要进行比较的字符串
CompareString = '9331c'

def md5(text):
    return hashlib.md5(str(text).encode('utf-8')).hexdigest()

def findCode(code):   
    start, end = map(int, code.split(':'))
    for c in range(start, end):
        if md5(c)[0:5] == CompareString:  //0~5表示c经过加密后的前五个字符
            print(c)
            break

ranges = [f"{10000000*i}:{10000000*(i+1)}" for i in range(3)]
with concurrent.futures.ThreadPoolExecutor() as executor:
    executor.map(findCode, ranges)

结果如下:


实战案例

easyphp 江苏工匠杯 | MD5截断比较实战

相关推荐
-大头.17 小时前
Java泛型实战:类型安全与高效开发
java·开发语言·安全
行思理17 小时前
Linux多PHP如何切换系统默认PHP版本
linux·运维·php
编程乐学(Arfan开发工程师)18 小时前
渗透测试基础详解:通往 CISP-PTE 的第一步
网络·安全·web安全
Python极客之家18 小时前
基于Django的高校二手市场与社交系统
后端·python·数据挖掘·django·毕业设计
shenzhenNBA18 小时前
python用openpyxl操作excel-合并格式相同的excel文件
python·excel·openpyxl·excel合并
shenzhenNBA18 小时前
python用openpyxl操作excel-读取sheet中数据
python·excel·读取sheet数据
gf132111118 小时前
python_字幕、音频、媒体文件(图片或视频)一键组合
python·音视频·swift
白露与泡影18 小时前
Java关键字解析之final:不可变的本质、设计哲学与并发安全
java·开发语言·安全
网安Ruler18 小时前
崭新出厂,自研CipherForge小工具,攻破 D-Link M30 固件加密
前端·网络·python
艾上编程18 小时前
第二章——数据分析场景之Python数据可视化:用Matplotlib与Seaborn绘制洞察之图
python·信息可视化·数据分析