Interactive educational platform for learning cryptographic algorithms through real-time visualizations
Encryption Visualizer is an interactive web application that demystifies complex cryptographic algorithms through step-by-step visualizations. Perfect for students, educators, developers, and security enthusiasts who want to understand how encryption actually works under the hood.
Cryptography concepts are notoriously abstract and difficult to grasp. By visualizing each transformation, from plaintext to ciphertext, learners can:
- See how data transforms at each step
- Understand the mathematical operations involved
- Compare different algorithms side-by-side
- Experiment with custom inputs and keys
- Learn security best practices through interactive content
- Step-by-step encryption/decryption process
- Key expansion visualization
- State matrix transformations (SubBytes, ShiftRows, MixColumns, AddRoundKey)
- Support for 128, 192, and 256-bit keys
- Real-time byte-level color coding
- Prime number generation visualization
- Modular arithmetic demonstrations
- Public/private key pair creation
- Encryption/decryption with mathematical notation
- Padding schemes explained
- SHA-256 round-by-round visualization
- Avalanche effect demonstration
- Hash comparison tool
- Multiple algorithms (SHA-256, SHA-1, MD5)
- Security warnings for deprecated methods
- Guided Tours: Structured learning paths for different skill levels
- Interactive Quizzes: Test your understanding after each module
- Glossary: Comprehensive cryptography terminology
- Best Practices: Industry-standard security recommendations
- Real-World Examples: HTTPS, E2EE, digital signatures, and more
- Playback Controls: Play, pause, step forward/backward
- Speed Control: Adjust animation speed to your learning pace
- Dark/Light Modes: Eye-friendly viewing options
- Fully Responsive: Works on desktop, tablet, and mobile
- Accessible: WCAG 2.1 AA compliant
- Framework: React 18+ with TypeScript
- State Management: Zustand
- Styling: Tailwind CSS + Shadcn/ui components
- Animation: Framer Motion + React Spring
- Visualization: D3.js v7+, Visx
- Routing: React Router v6
- Browser: Web Crypto API (SubtleCrypto)
- Educational: Custom step-by-step implementations
- Libraries: js-sha256, custom AES/RSA implementations
- Build Tool: Vite
- Package Manager: pnpm
- Testing: Vitest (unit), Playwright (e2e)
- Linting: ESLint + Prettier
- Type Checking: TypeScript strict mode
- Hosting: Vercel / Netlify
- CI/CD: GitHub Actions
- Performance: Lighthouse score > 90
- Node.js 20+ (download)
- pnpm 8+ (
npm install -g pnpm) - Git
# Clone the repository
git clone https://github.com/yourusername/encryption-visualizer.git
cd encryption-visualizer
# Install dependencies
pnpm install
# Start development server
pnpm devVisit http://localhost:3000 to see the app in action!
pnpm dev # Start development server
pnpm build # Build for production
pnpm preview # Preview production build
pnpm lint # Lint code
pnpm lint:fix # Fix linting errors
pnpm format # Format code with Prettier
pnpm test # Run unit tests
pnpm test:ui # Run tests with UI
pnpm test:e2e # Run end-to-end tests
pnpm type-check # Check TypeScript types- START_HERE.md โญ Read This First!
- Complete project overview
- Documentation guide
- What we've covered (85+ areas)
- Next steps
-
GAP_ANALYSIS.md ๐ What Could Go Wrong
- 10 critical failure points & solutions
- Infrastructure, scalability, UX, security
- Financial planning & business strategy
- Launch & growth strategy
-
PREFLIGHT_CHECKLIST.md โ Are You Ready?
- 9-phase comprehensive checklist
- 100+ readiness checkpoints
- Red flags vs. green lights
- 80/20 rule (essential 20%)
-
PROJECT_PLAN.md ๐ 16-Week Roadmap
- Complete development timeline
- 13 phases with milestones
- MVP โ Full Platform โ Advanced Features
- Resource allocation & scheduling
-
FEATURES.md ๐ฏ Complete Feature Specification
- All 75+ features organized by priority
- MVP (Weeks 1-4)
- Core Platform (Weeks 5-8)
- Advanced (Weeks 9-12)
- Cutting-Edge (Weeks 13-16)
- User stories & acceptance criteria
-
TECH_SPEC.md โ๏ธ Implementation Blueprint
- Technical architecture
- Data models & schemas
- Crypto implementations
- Animation strategies
- Performance optimization
-
ARCHITECTURE_DIAGRAM.md ๐ Visual Diagrams
- System architecture
- Data flow diagrams
- Component hierarchy
- File organization
-
GETTING_STARTED.md ๐ ๏ธ Setup Guide
- Environment setup
- Installation steps
- Initial code templates
- Troubleshooting
For Developers (Start Here):
- START_HERE.md (15 min)
- TECH_SPEC.md (45 min)
- GETTING_STARTED.md (2-3 hours)
- Start building!
For Project Managers:
- START_HERE.md (15 min)
- PROJECT_PLAN.md (30 min)
- GAP_ANALYSIS.md (60 min)
- PREFLIGHT_CHECKLIST.md (40 min)
For Stakeholders/Investors:
- START_HERE.md (15 min)
- GAP_ANALYSIS.md - Business section (20 min)
- FEATURES.md - Skim highlights (15 min)
For Learners/Users:
- README.md (this file)
- Try the live demo (when available)
- Explore visualizations
| I want to... | Go to... |
|---|---|
| Understand the project | START_HERE.md |
| See what could go wrong | GAP_ANALYSIS.md |
| Check if ready to build | PREFLIGHT_CHECKLIST.md |
| See the timeline | PROJECT_PLAN.md |
| Browse all features | FEATURES.md |
| Understand architecture | TECH_SPEC.md |
| See visual diagrams | ARCHITECTURE_DIAGRAM.md |
| Set up my environment | GETTING_STARTED.md |
| Start coding | Follow GETTING_STARTED.md, then PROJECT_PLAN.md Phase 1 |
encryption-visualizer/
โโโ src/
โ โโโ components/ # React components
โ โ โโโ ui/ # Reusable UI components
โ โ โโโ visualizations/ # Algorithm visualizations
โ โ โ โโโ AES/ # AES-specific components
โ โ โ โโโ RSA/ # RSA-specific components
โ โ โ โโโ Hashing/ # Hashing visualizations
โ โ โโโ controls/ # Playback controls
โ โ โโโ education/ # Educational content
โ โ โโโ layout/ # Layout components
โ โโโ lib/ # Core libraries
โ โ โโโ crypto/ # Crypto implementations
โ โ โโโ utils/ # Helper functions
โ โ โโโ types/ # TypeScript types
โ โโโ hooks/ # Custom React hooks
โ โโโ store/ # State management
โ โโโ pages/ # Application pages
โ โโโ styles/ # Global styles
โโโ public/ # Static assets
โโโ tests/ # Test files
โโโ docs/ # Documentation
- Project setup
- Core infrastructure
- AES visualization Part 1
- Complete AES visualization
- RSA visualization
- Hashing visualization
- Testing & polish
- Guided tours
- Quiz system
- Glossary
- Best practices guide
- Comparison tools
- Theme toggle
- Share functionality
- Performance optimization
- Elliptic Curve Cryptography
- Diffie-Hellman key exchange
- TLS handshake simulation
- Digital signature demos
See FEATURES.md for complete details on all 75+ features
- ๐ฎ Gamification (achievements, challenges, XP system)
- ๐ค AI-powered learning assistant
- ๐จ 3D visualizations (React Three Fiber)
- ๐ฑ Progressive Web App (offline-first)
- ๐ญ Role-playing scenarios
- ๐ฎ Post-quantum cryptography
- ๐ Real-time collaboration
- ๐ Multi-language support (8+ languages)
- ๐ Learning analytics dashboard
- ๐ฅ Export tools (video, GIF, slides)
- ๐ Security best practices checker
- โฟ Enhanced accessibility (WCAG 2.2/3.0)
- ๐ฅฝ WebXR (AR/VR) integration
- ๐๏ธ Blockchain-verified certificates
- ๐ฏ CTF (Capture the Flag) platform
We maintain high code quality through comprehensive testing:
pnpm test- Cryptographic algorithm accuracy
- State management logic
- Component rendering
- Utility functions
pnpm test:e2e- Complete algorithm flows
- User interactions
- State transitions
- Cross-browser compatibility
Target: >80% code coverage
This is an educational platform designed to teach cryptographic concepts. Important notes:
โ For Production: Always use:
- Web Crypto API (SubtleCrypto)
- Battle-tested libraries (libsodium, OpenSSL)
- Security audited code
- Input sanitization
- XSS protection
- Content Security Policy
- No data collection
- Local-only processing
Contributions are welcome! This project is perfect for:
- First-time open source contributors
- Students learning React/TypeScript
- Cryptography enthusiasts
- Educators creating learning materials
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
pnpm test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Add new algorithms (ChaCha20, ECC)
- Improve visualizations
- Add more educational content
- Translate to other languages
- Improve accessibility
- Write more tests
- Fix bugs
- NIST Cryptographic Standards
- Coursera: Cryptography I
- The Code Book by Simon Singh
- Serious Cryptography by Jean-Philippe Aumasson
Frontend Development:
- Advanced React patterns (hooks, context, composition)
- TypeScript type system mastery
- Complex state management
- Performance optimization
- Animation techniques
- Responsive design
Cryptography:
- Symmetric encryption (AES)
- Asymmetric encryption (RSA, ECC)
- Hash functions and their properties
- Key management principles
- Digital signatures
- Cryptographic protocols
Software Engineering:
- Clean architecture
- Testing strategies
- Documentation practices
- Code review process
- Version control workflows
- โ Modern, maintainable codebase
- โ >90 Lighthouse score
- โ WCAG 2.1 AA accessibility
- โ >80% test coverage
- โ Comprehensive documentation
- โ Clear, accurate algorithm explanations
- โ Intuitive, engaging visualizations
- โ Progressive learning paths
- โ Real-world context and examples
- โ Security best practices emphasis
- โ Open source contribution
- โ Educational resource sharing
- โ Cryptography awareness
- โ Developer learning platform
- Initial Load: < 2 seconds
- Time to Interactive: < 3 seconds
- Lighthouse Performance: > 90
- Lighthouse Accessibility: 100
- Animation Frame Rate: 60fps
- Bundle Size: < 500KB (gzipped)
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
This project is licensed under the MIT License - see the LICENSE file for details.
- NIST for cryptographic standards
- CrypTool for inspiration
- React community for excellent tools
- Open source contributors everywhere
- Project Lead: Your Name
- GitHub: @yourusername
- Website: encryption-visualizer.dev
If you find this project helpful:
- โญ Star this repository
- ๐ Report bugs
- ๐ก Suggest features
- ๐ Improve documentation
- ๐ Share with others
Built with โค๏ธ for the security education community
Get Started โข Documentation โข Contributing