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

相关推荐
码上淘金4 小时前
【Python】Python常用控制结构详解:条件判断、遍历与循环控制
开发语言·python
Brilliant Nemo4 小时前
四、SpringMVC实战:构建高效表述层框架
开发语言·python
2301_787552874 小时前
console-chat-gpt开源程序是用于 AI Chat API 的 Python CLI
人工智能·python·gpt·开源·自动化
懵逼的小黑子4 小时前
Django 项目的 models 目录中,__init__.py 文件的作用
后端·python·django
皓月盈江5 小时前
Linux电脑本机使用小皮面板集成环境开发调试WEB项目
linux·php·web开发·phpstudy·小皮面板·集成环境·www.xp.cn
Y3174295 小时前
Python Day23 学习
python·学习
Ai尚研修-贾莲5 小时前
Python语言在地球科学交叉领域中的应用——从数据可视化到常见数据分析方法的使用【实例操作】
python·信息可视化·数据分析·地球科学
qq_508576096 小时前
if __name__ == ‘__main__‘
python
学地理的小胖砸6 小时前
【Python 基础语法】
开发语言·python
程序员小远6 小时前
自动化测试与功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例