【网络安全 | 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截断比较实战

相关推荐
wang3zc2 分钟前
使用BERTopic对名言数据集进行批量主题建模的完整实践指南
jvm·数据库·python
码界筑梦坊4 分钟前
361-基于Python的空气质量气候数据分析预测系统
python·信息可视化·数据分析·flask·vue·毕业设计
淼淼爱喝水5 分钟前
DVWA 文件上传漏洞实验%00 截断实验与.htaccess 文件攻击实验
网络·安全·靶场
一念春风5 分钟前
QwenPaw(替代小龙虾)大模型
开发语言·php
m0_609160496 分钟前
Go语言如何做协程调度_Go语言协程调度原理教程【实用】
jvm·数据库·python
2301_8125396711 分钟前
golang如何实现全量数据迁移_golang全量数据迁移实现详解
jvm·数据库·python
小陈的进阶之路16 分钟前
安集商城接口自动化项目架构介绍
python·自动化·pytest
zhaoyong22218 分钟前
uni-app怎么获取短信验证码 uni-app接入短信平台流程【实战】
jvm·数据库·python
Jetev18 分钟前
CSS如何实现图片自动裁剪填充_巧用object-fit属性控制尺寸
jvm·数据库·python
Gerardisite19 分钟前
企业微信客户管理系统实战:标签、分层与自动化流程搭建
java·python·机器人·自动化·企业微信