# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.0.0] - 2025-12-03 ### Added #### Core Features - Hash search functionality for MD5, SHA1, SHA256, SHA512, and Bcrypt - Hash generation from plaintext input - Automatic detection of hash types based on length and pattern - Real-time hash generation with instant results - Copy to clipboard functionality for all hash values - Bcrypt verification support #### Backend - Elasticsearch integration with configurable endpoint - Custom index mapping with 10 shards for horizontal scaling - Automatic index creation on first use - Auto-indexing of searched plaintext for future lookups - RESTful API endpoints for search and health checks - Lowercase analyzer for case-insensitive searches #### Frontend - Modern, responsive UI with gradient design - Real-time search with loading states - Visual feedback for all user actions - Copy-to-clipboard with confirmation animations - Error handling with user-friendly messages - Mobile-responsive design - Accessibility features #### Bulk Indexing - Command-line script for bulk hash indexing - Configurable batch size for performance tuning - Progress indicator with percentage completion - Performance metrics (docs/sec) - Error reporting and handling - Support for large wordlist files #### Documentation - Comprehensive README with installation instructions - API documentation with request/response examples - Deployment guide for multiple platforms - Contributing guidelines - Testing guide with checklist - License (MIT) - Sample wordlist for testing #### Developer Tools - TypeScript for type safety - ESLint configuration - Environment variable support - Health check endpoint for monitoring - Detailed error logging ### Technical Details #### Dependencies - Next.js 16.0.7 - React 19.2.0 - Elasticsearch Client 8.x - Lucide React (icons) - Tailwind CSS 4.x - TypeScript 5.x #### Project Structure ``` hasher/ ├── app/ # Next.js app directory │ ├── api/ # API routes │ ├── layout.tsx # Root layout │ └── page.tsx # Main page ├── lib/ # Utility libraries │ ├── elasticsearch.ts # ES client │ └── hash.ts # Hash utilities ├── scripts/ # CLI scripts │ └── index-file.ts # Bulk indexer └── docs/ # Documentation ``` #### Elasticsearch Index Schema - Index name: `hasher` - Shards: 10 - Replicas: 1 - Fields: plaintext, md5, sha1, sha256, sha512, created_at ### Configuration #### Environment Variables - `ELASTICSEARCH_NODE`: Elasticsearch endpoint (default: http://localhost:9200) #### Performance - Bulk indexing: 1000-5000 docs/sec - Search latency: < 50ms typical - Horizontal scaling ready ### Security - Input validation on all endpoints - Case-insensitive hash matching - Safe NoSQL queries (no injection risks) - Error message sanitization --- ## [Unreleased] ### Planned Features - [ ] Argon2 hash support - [ ] Search history tracking - [ ] Batch hash lookup - [ ] Export results (CSV, JSON) - [ ] API rate limiting - [ ] Authentication/authorization - [ ] Advanced search filters - [ ] Hash strength analyzer - [ ] Custom hash algorithms ### Planned Improvements - [ ] Add unit tests - [ ] Add integration tests - [ ] Implement caching layer - [ ] Add Prometheus metrics - [ ] Improve error messages - [ ] Add more documentation - [ ] Performance optimizations - [ ] UI animations - [ ] Dark mode toggle - [ ] Internationalization (i18n) --- ## Version History - **1.0.0** (2025-12-03) - Initial release --- ## Migration Guide Not applicable for initial release. --- ## Support For issues, feature requests, or questions, please open an issue on GitHub.