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

相关推荐
文火冰糖的硅基工坊2 分钟前
[人工智能-大模型-103]:模型层 - M个神经元组成的单层神经网络的本质
python·算法·机器学习
emma羊羊4 分钟前
【weblogic】XML反序列化漏洞
xml·安全
坚持就完事了4 分钟前
XPath语法及Python的lxml包学习
python
孤独的追光者6 分钟前
使用Qt Designer开发上位机
开发语言·python·qt
杨超越luckly11 分钟前
HTML应用指南:利用POST请求获取全国爱回收门店位置信息
大数据·前端·python·信息可视化·html
TF男孩31 分钟前
小技巧:让你写的python代码直接点击运行
python
程序员爱钓鱼31 分钟前
Python编程实战 - 面向对象与进阶语法 - 异常类型与捕获
后端·python·ipython
虚伪的空想家34 分钟前
ip网段扫描机器shell脚本
android·linux·网络协议·tcp/ip·shell·脚本·network
程序员爱钓鱼35 分钟前
Python编程实战 - 面向对象与进阶语法 - 类方法与静态方法
后端·python
JaguarJack1 小时前
PHP 现代特性速查 写出更简洁安全的代码(第一篇)
后端·php