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

相关推荐
qq_330037994 小时前
将数据库中的 UTC 时间准确转换为英国夏令时(BST)的 PHP 实现方法
jvm·数据库·python
2401_887724504 小时前
mysql如何通过调整临时表空间配置优化查询_优化innodb_temp_data_file_path
jvm·数据库·python
小江的记录本4 小时前
【分布式】分布式系统核心知识体系:CAP定理、BASE理论与核心挑战
java·前端·网络·分布式·后端·python·安全
深邃-4 小时前
【Web安全】-Kali,Linux基础:Kali系统安装,Kali鼠标不显示(版本问题),Linux系统介绍(1)
linux·计算机网络·安全·web安全·网络安全·系统安全·网络攻击模型
qq_654366984 小时前
如何配置Oracle环境变量_ORACLE_HOME与PATH路径映射
jvm·数据库·python
liu****4 小时前
LangGraph-AI应用开发框架(五)
python·langchain·大模型·langgraph
<-->4 小时前
【tuner passes compile compress autotp】
人工智能·python·深度学习
pele4 小时前
bootstrap怎么实现带有验证状态的表单
jvm·数据库·python
djjdjdjdjjdj4 小时前
CSS实现图片中心剪裁定位_background-position center
jvm·数据库·python
星幻元宇VR4 小时前
VR禁毒骑行系统,打造互动式禁毒科普新场景
科技·学习·安全·vr·虚拟现实