🔐 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.

Share this project:

Updates