Secure, client-side text encryption and decryption powered by the Web Crypto API.
StarryCrypt is a modern, zero-knowledge web application that provides robust text encryption and decryption entirely within the browser. Designed with privacy as the highest priority, no plaintext or passwords ever leave your device.
Perfect for securely sharing sensitive messages, storing encrypted notes, or learning about modern web cryptography.
🔒 Zero-Knowledge · 🚀 Fast · 📱 Responsive · 🌍 i18n Support · 🔐 Industry-Standard Crypto
- Features
- Tech Stack
- Security Model
- Getting Started
- Development
- Contributing
- Security Policy
- Documentation
- License
- Robust Security: Utilizes industry-standard cryptographic algorithms (AES-GCM-256, PBKDF2-SHA-512).
- Zero-Knowledge Architecture: All cryptographic operations are executed locally in your browser. No server communication is involved in the encryption/decryption process.
- Seamless Sharing: Share encrypted messages via QR codes, direct URL sharing, or file downloads.
- Internationalization (i18n): Built-in multi-language UI support for global accessibility.
- Modern UI/UX: A beautiful, responsive interface built with React, Tailwind CSS, and shadcn/ui.
- Auto-cleanup: Intelligent URL input handling with automatic query parameter sanitization to prevent accidental data leaks.
- Frontend Framework: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS & shadcn/ui
- Cryptography: Native Web Crypto API
- Routing: React Router DOM
- Form Handling: React Hook Form + Zod
- Icons & Components: Lucide React, Radix UI, Recharts
StarryCrypt implements a strict security model to ensure your data remains confidential and tamper-proof:
- Encryption Algorithm: AES-GCM-256 (Advanced Encryption Standard in Galois/Counter Mode)
- Key Derivation: PBKDF2 with SHA-512 (Password-Based Key Derivation Function 2)
- Salting & IVs: A cryptographically secure random salt and Initialization Vector (IV) are generated for every single encryption operation.
- Integrity Checking: Optional HMAC tags are used to verify the authenticity and integrity of the ciphertext before decryption.
Ensure you have Node.js (v18+) and npm installed on your local machine.
-
Clone the repository:
git clone https://github.com/Samin-yasar/StarryCrypt.git cd StarryCrypt -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173.
Maintain code quality and ensure cryptographic functions work as expected:
- Run Unit Tests:
npm run test - Watch Mode:
npm run test:watch - Lint Code:
npm run lint
For detailed development setup, architecture overview, and contribution guidelines, see our Development Guide.
git clone https://github.com/Samin-yasar/StarryCrypt.git
cd StarryCrypt
npm install
npm run devWe welcome contributions! Please read our:
- Contributing Guide - Workflow and conventions
- Code of Conduct - Community standards
- Development Guide - Setup and architecture
For a list of good first issues to tackle, see our GitHub Issues.
Please refer to SECURITY.md for detailed information on our security practices and how to report vulnerabilities.
- Architecture Guide - System design and crypto flows
- API Reference - Cryptographic function documentation
- Testing Guide - Test strategy and coverage
- Deployment Guide - Production deployment
- Troubleshooting - Common issues and solutions
Distributed under the GNU GPL-3.0 License. See LICENSE for more information.
If you find this project useful, please consider:
- Starring the repository ⭐
- Reporting bugs or suggesting features
- Contributing code or documentation
- Sharing with others who might benefit