A modern, feature-rich web application for encrypting text with multiple algorithms and generating reusable decryption code.
- Node.js 18+
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/odaysec/CryptoString.git cd CryptoString -
Install dependencies
npm install
-
Start development server
npm run dev
-
Open in browser
http://localhost:5173
npm run build
npm run preview- Navigate to the Encrypt tab
- Enter your text in the input field
- Select your preferred encryption algorithm
- Configure advanced options (optional):
- Adjust key length (16-64 characters)
- Enable/disable timestamp inclusion
- Enable/disable salt usage
- Save key for later use
- Click Encrypt Text
- Copy the encrypted result and decryption key
- Navigate to the Decrypt tab
- Enter the encrypted text
- Choose between:
- Manual Key: Enter the decryption key manually
- Stored Key: Select from previously saved keys
- Select the correct algorithm used for encryption
- Enter salt if it was used during encryption
- Click Decrypt Text
- Navigate to the Key Manager tab
- Add New Key: Create custom keys with specific algorithms
- Generate Key: Use the built-in secure key generator
- Export Keys: Download all keys as JSON backup
- Import Keys: Restore keys from backup file
- View/Hide Keys: Toggle key visibility for security
- Copy Keys: Quick copy to clipboard functionality
- After encryption, click Show Code in the results
- Test Code: Verify the code works correctly
- Copy Code: Copy to clipboard for use in your projects
- Download Code: Save as .js file for integration
- Frontend: React 18 with TypeScript
- Styling: Tailwind CSS with custom gradients
- Icons: Lucide React icon library
- Build Tool: Vite for fast development and building
- Storage: Browser localStorage with encryption
- AES-like: XOR-based encryption with key derivation
- Hybrid: Multi-layer encryption combining multiple algorithms
- Key Derivation: Custom function mixing key and salt
- Salt Generation: Cryptographically secure random salt
- Base64 Encoding: Standard browser implementation
- All encryption happens client-side
- Keys are encrypted before localStorage
- No data is sent to external servers
- Cryptographically secure random number generation
- Proper key derivation with salt support
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
// Key derivation with salt
function deriveKey(key, salt) {
// Complex mixing of key and salt
// XOR operations with position-based variation
}
// Encryption process
function encrypt(text, key, salt) {
// Derive key from original key and salt
// XOR each character with derived key
// Apply position-based variation
// Base64 encode result
}// Multi-layer approach
function hybridEncrypt(text, key, salt) {
// Step 1: Caesar cipher with dynamic shift
// Step 2: XOR encryption
// Step 3: AES-like encryption
}Important: This tool is designed for educational and development purposes. For production applications requiring high security, please use established cryptographic libraries and follow security best practices.
- Use strong, unique keys for each encryption
- Store keys separately from encrypted data
- Consider using established libraries for production use
- Regularly backup your encryption keys
- Test decryption before relying on encrypted data
If you find this project helpful, please consider:
- ⭐ Starring the repository
- 🐛 Reporting bugs and issues
- 💡 Suggesting new features
- 🔄 Contributing to the codebase
Built with ❤️ for the cybersecurity community