多接口版MD5解密工具源码

admin 2025年1月2日09:31:24评论23 views字数 4736阅读15分47秒阅读模式

最近,我在折腾MD5解密平台,突然想到好多年前的一个名为 Md5Decrypt 的GitHub项目,它是一个使用多个在线API来解密MD5的开源工具。受到启发,我决定写一份PHP版本的多接口MD5解密工具。在这篇博文中,我将详细介绍构建这个工具的过程。

项目概述

目标是创建一个网页工具,接受MD5哈希作为输入,并通过多个在线API尝试解密。这增加了成功找到原始字符串的机会,因为不同的API可能有不同的哈希数据库。

我计划:

  • 使用PHP处理与外部API的服务器端请求。
  • 使用HTML、CSS(Bootstrap)和JavaScript构建用户友好的前端。
  • 确保工具能够有效解析和显示结果,即使不同API返回的数据格式不同。

构建后端:

设置PHP脚本

后端脚本proxy.php充当前端和外部MD5解密API之间的代理。它接收来自前端的POST请求,将其转发到适当的API,并返回结果。

以下是proxy.php的基本结构:

<?phpif ($_SERVER['REQUEST_METHOD'] === 'POST') {// 根据POST参数确定目标API    // 准备并发送请求到外部API    // 处理响应并将结果返回给前端}?>

处理不同的API

我支持了几个API:

  1. 棉花糖MD5解密
  2. T007解密
  3. MD5.li解密
  4. My-Addr解密

每个API都有自己的端点和预期参数。脚本通过检查特定的POST参数来决定调用哪个API。

if(isset($_POST['md5'])) {$url 'https://vip.bdziyi.com/hygj/md5api.php';elseif(isset($_POST['type']) && $_POST['type'] == 1) {$url 'https://t007.cn/home/index/doEnDecode';elseif(isset($_POST['md5li']) && $_POST['md5li'] == 1) {$url 'https://md5.li/';elseif(isset($_POST['myaddr']) && $_POST['myaddr'] == 1) {$url 'http://md5.my-addr.com/md5_decrypt-md5_cracker_online/md5_decoder_tool.php';$postData http_build_query(['md5' => $_POST['hash'], 'x' => 24'y' => 7]);else {echo json_encode(['error' => '无效的请求参数']);exit;}

发送请求并处理响应

为每个API准备请求数据,并发送HTTP请求。处理响应时,需要根据API返回的数据格式解析结果。

$options = ['http' => ['header'  => "Content-type: application/x-www-form-urlencodedrn" ."User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36rn",'method'  => 'POST','content' => $postData,'ignore_errors' => true,    ],'ssl' => ['verify_peer' => false,'verify_peer_name' => false,    ],];$context  = stream_context_create($options);$result file_get_contents($urlfalse$context);if($result === FALSE) {echo json_encode(['error' => '请求失败']);else {// 根据不同API的响应格式解析结果}

构建前端

前端使用Bootstrap来创建一个简单直观的界面,用户可以在此输入MD5值并查看解密结果。

HTML结构

<body><!-- 导航栏 --><navclass="navbar navbar-expand-lg navbar-dark bg-dark"><aclass="navbar-brand"href="#">MD5 解密服务</a><buttonclass="navbar-toggler"type="button"data-toggle="collapse"data-target="#navbarNav"aria-controls="navbarNav"aria-expanded="false"aria-label="Toggle navigation"><spanclass="navbar-toggler-icon"></span></button><divclass="collapse navbar-collapse"id="navbarNav"><ulclass="navbar-nav ml-auto"><liclass="nav-item active"><aclass="nav-link"href="#">主页 <spanclass="sr-only">(current)</span></a></li><liclass="nav-item"><aclass="nav-link"href="#">关于</a></li><liclass="nav-item"><aclass="nav-link"href="#">联系</a></li></ul></div></nav><!-- 主内容 --><divclass="container mt-5"><h1class="mb-4">MD5解密</h1><divclass="form-group"><labelfor="md5Input">输入 MD5 值</label><inputtype="text"class="form-control"id="md5Input"placeholder="请输入 MD5 值"></div><buttonid="decryptBtn"class="btn btn-primary">解密</button><divid="resultSection"class="mt-4"><h3>解密结果:</h3><tableclass="table table-bordered"><thead><tr><th>平台名</th><th>MD5值</th><th>解密结果</th></tr></thead><tbodyid="resultTable"><!-- 解密结果将插入到这里 --></tbody></table></div></div><!-- 页脚 --><footer><p>&copy; 2025 MD5 解密服务. 保留所有权利.</p></footer></body>

JavaScript逻辑

使用JavaScript处理用户输入并与后端交互,获取解密结果。

document.getElementById('decryptBtn').addEventListener('click'function() {            const md5Value = document.getElementById('md5Input').value;            const platforms = [                { name: '棉花糖', param: 'md5' },                { name: 'T007', param: 'type=1&txtInput' },                { name: 'MD5.li', param: 'md5li=1&hash' },                { name: 'My-Addr', param: 'myaddr=1&hash' }            ];            // 清除旧结果            document.getElementById('resultTable').innerHTML = '';            document.getElementById('resultSection').style.display = 'none';            platforms.forEach(platform => {                fetch("proxy.php", {                    headers: {"accept""application/json, text/javascript, */*; q=0.01","content-type""application/x-www-form-urlencoded; charset=UTF-8"                    },                    body: `${platform.param}=${md5Value}`,                    method: "POST"                })                .then(response => response.json())                .then(data => {let result;if (data.result) {                        result = data.result;                    } elseif (data.error && data.link) {                        result = `需要1积分查看,请访问 <a href="${data.link}" target="_blank">md5.li</a>`;                    } else {                        result = '很遗憾,没有解密成功';                    }                    const row = `<tr><td>${platform.name}</td><td>${md5Value}</td><td>${result}</td></tr>`;                    document.getElementById('resultTable').insertAdjacentHTML('beforeend', row);                    document.getElementById('resultSection').style.display = 'block'; // 显示结果                })                .catch(error => {                    const row = `<tr><td>${platform.name}</td><td>${md5Value}</td><td>错误: ${error}</td></tr>`;                    document.getElementById('resultTable').insertAdjacentHTML('beforeend', row);                    document.getElementById('resultSection').style.display = 'block'; // 显示结果                });            });        });

最后的结果如图

多接口版MD5解密工具源码

项目地址:https://github.com/C4rpeDime/MD5DecryptionPlugin

原文始发于微信公众号(HackTips):多接口版MD5解密工具源码

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月2日09:31:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   多接口版MD5解密工具源码https://cn-sec.com/archives/3582634.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息