3.9 KiB
3.9 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[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.