🔐 Project: Cipher — A File Encryption & Decryption Tool 💡 Inspiration The increasing threat of cyberattacks and data leaks in the digital world inspired me to develop Cipher — a tool that empowers individuals and organizations to secure their files with robust encryption. I’ve always been fascinated by cryptography and its role in protecting privacy, and this project was my attempt to practically apply those principles.
🧠 What I Learned Through this project, I deepened my understanding of:
Core cryptographic algorithms (AES, RSA, XOR, etc.)
File handling in various formats (text, PDF, images)
Secure key generation and management
Ensuring data integrity and usability in both encryption and decryption process.
Encryption Logic: Custom JavaScript logic using Web Crypto API.
Key features:
Encrypt and decrypt files locally
Option to preview decrypted content before downloading
Smooth animations, dark mode, and a clean UX
javascript
// Example encryption snippet using AES async function encryptFile(file, key) { const iv = crypto.getRandomValues(new Uint8Array(12)); const encryptedContent = await crypto.subtle.encrypt( { name: "AES-GCM", iv: iv }, key, file ); return { encryptedContent, iv }; }
🧱 Challenges I Faced
Cross-browser compatibility for cryptographic operations
Handling large files efficiently without freezing the UI
Debugging binary data corruption during file I/O operations
Designing a UI that felt both secure and modern
🚀 Outcome The final product was a fully functional, sleek, and secure web-based tool that could encrypt and decrypt files quickly. It was well-received by peers, and I plan to add features like cloud sync, multi-user encryption, and voice commands in the future.
Log in or sign up for Devpost to join the conversation.