189 líneas
5.3 KiB
Markdown
189 líneas
5.3 KiB
Markdown
# 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).
|
|
|
|
## [2.0.0] - 2025-12-03
|
|
|
|
### Changed
|
|
|
|
#### Major Backend Migration
|
|
- **Breaking Change**: Migrated from Elasticsearch to Redis for improved performance
|
|
- Replaced Elasticsearch Client with ioredis for Redis operations
|
|
- Redesigned data structure using Redis key patterns
|
|
- Implemented O(1) hash lookups using Redis indexes
|
|
- Significantly reduced search latency (< 10ms typical)
|
|
|
|
#### New Redis Architecture
|
|
- Document storage: `hash:plaintext:{plaintext}` keys
|
|
- Hash indexes: `hash:index:{algorithm}:{hash}` for fast lookups
|
|
- Statistics tracking: `hash:stats` Redis Hash
|
|
- Pipeline operations for atomic batch writes
|
|
- Connection pooling with automatic retry strategy
|
|
|
|
### Updated
|
|
|
|
#### Configuration
|
|
- Environment variables changed from `ELASTICSEARCH_NODE` to `REDIS_HOST`, `REDIS_PORT`, `REDIS_PASSWORD`, `REDIS_DB`
|
|
- Simplified connection setup with sensible defaults
|
|
- Optional Redis authentication support
|
|
|
|
#### Performance Improvements
|
|
- Search latency reduced to < 10ms (from ~50ms)
|
|
- Bulk indexing maintained at 1000-5000 docs/sec
|
|
- Lower memory footprint
|
|
- Better concurrent request handling (100+ users)
|
|
|
|
## [1.0.0] - 2025-12-03
|
|
|
|
### Added
|
|
|
|
#### Core Features
|
|
- Hash search functionality for MD5, SHA1, SHA256, and SHA512
|
|
- 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
|
|
|
|
#### Backend
|
|
- Redis integration with ioredis
|
|
- Key-value storage with hash indexes
|
|
- Automatic key structure initialization
|
|
- Auto-storage of searched plaintext for future lookups
|
|
- RESTful API endpoints for search and health checks
|
|
- 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
|
|
- ioredis 5.4.2
|
|
- 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
|
|
│ ├── redis.ts # Redis client
|
|
│ └── hash.ts # Hash utilities
|
|
├── scripts/ # CLI scripts
|
|
│ ├── index-file.ts # Bulk indexer
|
|
│ └── remove-duplicates.ts # Duplicate removal
|
|
└── docs/ # Documentation
|
|
```
|
|
|
|
#### Redis Data Structure
|
|
- Main documents: `hash:plaintext:{plaintext}`
|
|
- MD5 index: `hash:index:md5:{hash}`
|
|
- SHA1 index: `hash:index:sha1:{hash}`
|
|
- SHA256 index: `hash:index:sha256:{hash}`
|
|
- SHA512 index: `hash:index:sha512:{hash}`
|
|
- Statistics: `hash:stats` (Redis Hash with count and size)
|
|
|
|
### Configuration
|
|
|
|
#### Environment Variables
|
|
- `REDIS_HOST`: Redis host (default: localhost)
|
|
- `REDIS_PORT`: Redis port (default: 6379)
|
|
- `REDIS_PASSWORD`: Redis password (optional)
|
|
- `REDIS_DB`: Redis database number (default: 0)
|
|
|
|
#### Performance
|
|
- Bulk indexing: 1000-5000 docs/sec
|
|
- Search latency: < 10ms typical (O(1) lookups)
|
|
- Horizontal scaling ready with Redis Cluster
|
|
- Lower memory footprint than Elasticsearch
|
|
|
|
### 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.
|