A comprehensive web-based cryptography toolkit for educational and demonstration purposes, featuring RSA, Symmetric Encryption, Hash Functions, and Digital Signature Algorithm (DSA) implementations.
- Overview
- Installation & Setup
- Getting Started
- Tool Descriptions
- API Reference
- Security Considerations
- Troubleshooting
- Technical Specifications
This cryptography toolkit provides a user-friendly web interface for understanding and experimenting with fundamental cryptographic operations. Each tool is designed for educational purposes and includes step-by-step operations to help users learn how different cryptographic algorithms work.
- RSA Encryption/Decryption: Generate key pairs, encrypt and decrypt messages
- Symmetric Encryption: Support for multiple algorithms (AES, DES, 3DES, etc.)
- Hash Functions: Generate and verify cryptographic hashes
- Digital Signatures (DSA): Create and verify digital signatures
- Key Management: Download and manage cryptographic keys
- Educational Interface: Clear explanations and demonstrations
├── api/ # Vercel serverless functions
│ ├── generate-rsa-keys.ts
│ ├── rsa-encrypt.ts
│ ├── rsa-decrypt.ts
│ ├── symmetric-encrypt.ts
│ ├── symmetric-decrypt.ts
│ ├── hash.ts
│ └── ...
├── public/ # Static files
│ ├── index.html # RSA page
│ ├── symmetric.html # Symmetric encryption page
│ └── hash.html # Hash functions page
├── src/ # Source code (for local development)
│ ├── crypto/
│ │ ├── rsa.ts
│ │ ├── symmetric.ts
│ │ └── hash.ts
│ └── server.ts
├── vercel.json # Vercel configuration
└── package.json
-
Install dependencies:
npm install
-
Run locally with Express server:
npm run dev
-
Build TypeScript:
npm run build
-
Start production server:
npm start
-
Install Vercel CLI:
npm install -g vercel
-
Login to Vercel:
vercel login
-
Initialize Vercel project:
vercel
Follow the prompts to set up your project.
-
Deploy to production:
vercel --prod
Or use the npm script:
npm run deploy
For automatic deployments, connect your GitHub repository to Vercel:
- Push your code to GitHub
- Go to Vercel Dashboard
- Click "New Project"
- Import your GitHub repository
- Vercel will automatically detect the configuration and deploy
No environment variables are required for basic functionality. All cryptographic operations run in the browser or serverless functions.
POST /api/generate-rsa-keys- Generate RSA key pairPOST /api/rsa-encrypt- Encrypt data with public keyPOST /api/rsa-decrypt- Decrypt data with private keyPOST /api/download-keys- Download key pair as JSON
POST /api/generate-symmetric-key- Generate symmetric keyPOST /api/symmetric-encrypt- Encrypt data symmetricallyPOST /api/symmetric-decrypt- Decrypt data symmetrically
POST /api/hash- Generate hash of input dataPOST /api/verify-hash- Verify hash against expected valueGET /api/hash-algorithms- Get supported algorithms info
/- Home page (Symmetric encryption)/rsa- RSA encryption/decryption/symmetric- Symmetric encryption operations/hash- Hash function tools
- This is an educational tool for demonstrating cryptographic concepts
- Private keys are generated and used client-side only
- No sensitive data is stored on the server
- For production use, implement proper key management and security practices
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Backend: Node.js, TypeScript
- Deployment: Vercel Serverless Functions
- Cryptography: Node.js Crypto module
MIT License - see LICENSE file for details