A versatile, open-source cryptographic hash toolkit for developers and security professionals.
Hashify is a free, fast, and secure online hash generator that supports multiple cryptographic algorithms including MD5, SHA-256, and SHA-512. Generate, compare, and batch-process hashes with advanced features like salt/pepper support, visualization, and history trackingโall in your browser, completely offline.
- ๐ Hash Generator - Generate MD5, SHA-256, and SHA-512 hashes
- ๐ Hash Comparison - Compare two inputs to see if their hashes match
- ๐ฆ Batch Processing - Upload files and process multiple entries at once
- ๐ Hash Visualizer - See unique visual representations of hashes
- ๐ History Tracking - Automatic tracking of recent hash operations
- ๐ง Salt & Pepper Support - Add custom or random salt/pepper to your hashes
- ๐ Client-Side Processing - All hashing is done in your browser (no server uploads)
- โ Open Source - Fully transparent code for security auditing
- ๐ HTTPS Ready - Secure by default
- ๐ Multiple Themes - Light, Dark, Hacker, Zen, and Retro themes
- ๐ฑ Responsive Design - Works on desktop, tablet, and mobile devices
- โก Instant Processing - Real-time hash generation with debouncing
- ๐พ Export Options - Download as TXT, JSON, CSV, or QR Code
- ๐จ Modern UI - Built with Tailwind CSS and Radix UI components
Visit Hashify to use the tool instantly without any installation.
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/Centre-for-Information-Technology-India/Hashify.git
cd Hashify
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm start-
Basic Hashing
- Select the "Generator" tab
- Enter your text
- Choose an algorithm (MD5, SHA-256, or SHA-512)
- The hash generates automatically
- Click copy or download your hash
-
With Salt/Pepper
- Enable "Salt / Pepper" toggle
- Enter a custom value or generate a random one
- Choose position (prefix or postfix)
- Generate hash with added security
-
Download Options
- TXT - Plain text format
- JSON - Structured data with metadata
- QR Code - For sharing or scanning
- Switch to "Compare" tab
- Enter two different texts
- Select your algorithm
- See instant comparison results
- Visual indicator shows if hashes match
- Go to "Batch" tab
- Upload a .txt or .csv file (one entry per line)
- Select algorithm
- Processing starts automatically
- Download results as CSV or JSON
- Navigate to "Visualize" tab
- Paste any hash (16+ characters)
- See unique pixel art representation
- Different hashes = different visual patterns
- View all operations in "History" tab
- See timestamp, algorithm, input, and hash
- Export entire history as JSON
- Clear history when needed
- Frontend Framework: Next.js 15
- UI Component Library: Radix UI
- Styling: Tailwind CSS
- Cryptography: Web Crypto API
- Language: TypeScript
- Forms: React Hook Form
- Validation: Zod
- No Data Collection - We don't collect, store, or transmit any user data
- Client-Side Processing - All hashing happens locally in your browser
- No External Requests - No data leaves your device
- Open Source - Review the code to verify our claims
- HTTPS Only - Encrypted connection (when deployed)
We welcome contributions from the community! Whether it's bug fixes, new features, documentation improvements, or translations, your help makes Hashify better.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Make your changes
- Write or update tests as needed
- Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For detailed guidelines, see CONTRIBUTING.md
- ๐ Bug fixes and issue resolution
- โจ New features (new hash algorithms, more themes, etc.)
- ๐ Documentation improvements
- ๐ Translations to other languages
- ๐จ UI/UX improvements
- โก Performance optimization
- ๐งช Test coverage
- Browsers Supported:
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
- Device: Any device with a modern web browser
- Connectivity: Internet required only for initial loading
Hashify/
โโโ src/
โ โโโ app/
โ โ โโโ layout.tsx # Root layout with metadata
โ โ โโโ globals.css # Global styles
โ โ โโโ page.tsx # Home page
โ โโโ components/
โ โ โโโ hash-generator.tsx # Main app component
โ โ โโโ theme-provider.tsx # Theme configuration
โ โ โโโ ui/ # Reusable UI components
โ โโโ hooks/
โ โ โโโ use-toast.ts # Toast notifications
โ โ โโโ use-mobile.tsx # Mobile detection
โ โโโ lib/
โ โโโ md5.ts # MD5 implementation
โ โโโ utils.ts # Utility functions
โโโ public/ # Static assets
โโโ docs/ # Documentation
โโโ package.json # Dependencies & scripts
โโโ tailwind.config.ts # Tailwind configuration
โโโ tsconfig.json # TypeScript configuration
โโโ README.md # This file
# Development
npm run dev # Start dev server with Turbopack
npm run build # Build for production
npm start # Start production server
npm run lint # Run ESLint
npm run typecheck # Type check with TypeScript- Additional hash algorithms (BLAKE3, Argon2)
- File hashing with progress indicators
- Browser extension
- Mobile app (React Native)
- Dark mode improvements
- Keyboard shortcuts
- Internationalization (i18n)
- REST API endpoint
- Hash benchmark tool
If you find a bug, please open an issue with:
- Description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Browser and OS information
Have an idea? We'd love to hear it! Create a feature request with details about your proposal.
This project is licensed under the MIT License - see LICENSE for details.
- Built with Next.js and Tailwind CSS
- UI components from Radix UI
- Icons by Lucide
- Maintained by Centre for Information Technology (India)
- ๐ฌ GitHub Discussions
- ๐ Report Issues
- ๐ง Email Contact
- ๐ Visit CIT India
Hashify is available in multiple languages. Contributions welcome!
- ๐บ๐ธ English (English)
- ๐ฎ๐ณ เคนเคฟเคเคฆเฅ (Hindi) - Coming Soon
- ๐ช๐ธ Espaรฑol (Spanish) - Coming Soon
- ๐ซ๐ท Franรงais (French) - Coming Soon
Help us translate! Check CONTRIBUTING.md for details.