CrackHash - распределённая система для подбора строк по их MD5-хэшу методом полного перебора (brute-force).
Система построена по архитектуре master-worker и состоит из двух компонентов:
- Manager - принимает запросы, разбивает задачу на части, отправляет воркерам и агрегирует результаты
- Worker - перебирает строки и вычисляет их MD5
- Клиент отправляет MD5-хэш и максимальную длину строки в Manager
- Manager создаёт уникальный
requestId - Пространство поиска делится на части по количеству воркеров
- Каждому воркеру отправляется своя часть
- Воркеры перебирают комбинации и ищут совпадения
- Результаты отправляются обратно в Manager
- Клиент получает статус задачи по
requestId
- Распределённые вычисления
- Масштабирование за счёт увеличения количества воркеров
- Асинхронная обработка задач
- Отслеживание статуса по
requestId - Кэширование результатов
- Обработка отказов (часть воркеров может упасть)
- Используется только алгоритм MD5
- Алфавит по умолчанию: a-z + 0-9
- .NET 10 SDK
- Docker
- Docker Compose
- Git
git clone <your-repo>
cd crack-hash
docker-compose up --buildPOST /api/hash/crack
{
"hash": "5d41402abc4b2a76b9719d911017c592",
"maxLength": 5
}Ответ:
{
"requestId": "uuid"
}GET /api/hash/status?requestId=<uuid>{=html}
Статусы:
IN_PROGRESS - выполняется READY - завершено PARTIAL_RESULT - частичный результат ERROR - ошибка
POST /internal/api/worker/hash/crack/task
(XML)
PATCH /internal/api/manager/hash/crack/request
(XML)
- Manager распределяет задачи
- Воркеры работают независимо
- Результаты собираются асинхронно
- C#\
- .NET 10 / ASP.NET Core
- Docker
- HTTP (JSON + XML)
- In-memory cache
- Git
- Таймауты\
- Fault tolerance\
- Частичные результаты\
- Background services