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

相关推荐
啊阿狸不会拉杆31 分钟前
《Java 程序设计》第 12 章 - 异常处理
java·开发语言·jvm·python·算法·intellij-idea
lili-felicity38 分钟前
Python奇幻之旅:从零开始的编程冒险
python
前与端1 小时前
前端XSS常见特征与防范措施
安全
你的电影很有趣1 小时前
lesson28:Python单例模式全解析:从基础实现到企业级最佳实践
开发语言·python
广州山泉婚姻2 小时前
Python与机器学习的深度融合:赋能智能时代的技术基石
python
码界筑梦坊2 小时前
169-Django二手交易校园购物系统开发分享
后端·python·django·毕业设计·conda
8Qi82 小时前
深度学习(鱼书)day06--神经网络的学习(后两节)
人工智能·python·深度学习·神经网络
这里有鱼汤2 小时前
从0到1打造一套小白也能跑得起来的量化框架[图文教程]
后端·python
拉法豆粉2 小时前
渗透测试与漏洞扫描有什么区别?
网络·安全·web安全
wa的一声哭了3 小时前
Python多进程并行multiprocess基础
开发语言·jvm·人工智能·python·机器学习·语言模型·自然语言处理