A comprehensive collection of cryptographic algorithm implementations in Java, featuring both classical and modern encryption techniques with client-server architecture for secure communication.
This repository contains implementations of various cryptographic algorithms and encryption techniques, designed to demonstrate secure data transmission between clients and servers. Each implementation includes practical examples of encryption, decryption, and key management.
- AES (Advanced Encryption Standard) - Modern block cipher encryption
- DES (Data Encryption Standard) - Legacy block cipher encryption
- SDES (Simplified DES) - Educational simplified version of DES
- IDEA (International Data Encryption Algorithm) - Block cipher encryption
- RSA - Public-key cryptosystem for secure data transmission
- ElGamal - Public-key encryption based on Diffie-Hellman
- Caesar Cipher - Simple substitution cipher with shift
- Vigenere Cipher - Polyalphabetic substitution cipher
- PlayFair Cipher - Digraph substitution cipher
- Hill Cipher - Polygraphic substitution using linear algebra
- Rail Fence Cipher - Transposition cipher technique
- Row Column Cipher - Columnar transposition cipher
- Prime Generator - Tool for generating prime numbers (useful for RSA and other algorithms)
Each algorithm folder typically contains:
ClientEncryption.java/Client*.java- Client-side implementationServerEncryption.java/Server*.java- Server-side implementation- Core algorithm implementation files
- Testing/Tester files for validation
- Java Development Kit (JDK) 8 or higher
- Basic understanding of cryptography concepts
- Navigate to the desired algorithm folder
- Compile the Java files:
javac *.java - Run the server first:
java ServerEncryption
- In a separate terminal, run the client:
java ClientEncryption
This repository demonstrates:
- Implementation of various encryption and decryption algorithms
- Client-server communication with encrypted data
- Key generation and management
- Differences between symmetric and asymmetric encryption
- Classical vs. modern cryptographic techniques
These implementations are for educational purposes only. For production environments, use well-tested cryptographic libraries and follow security best practices.
This project is available for educational and learning purposes.
Feel free to fork this repository and add more cryptographic algorithms or improve existing implementations.