Vigenere Encryption
Allows Caesar and Vigenere encryption of a String, with multiple input interfaces including over local network.
For Innovation Week Encryption Workshop.
Install program
- Clone this repo.
- Build with command line
gradlew build
(pc) or./gradlew build
(mac/linux)
Run program
Interactive console app
./run.sh
CLI
- To encrypt:
./run.sh -e <message> <key>
- To decrypt:
./run.sh -d <message> <key>
CLI with networking
You must start both a server and a client, which can be done in either order.
Start server
- To start server and wait for client's message:
./run.sh <port-number>
- To start server and send message to client when it connects:
./run.sh <port-number> <-e or -d> <message> <key>
Start client
- To start client and read from specified server:
./run.sh <server-host-name> <port-number>
- To start client and send message to specified server:
./run.sh <server-host-name> <port-number> <-e or -d> <message> <key>
What I learned
- Traditional encryption/decryption
- Interfaces
- Extended enums (e.g constructors)
- Command line interface
- Networking (TCP/sockets)
- Gradle build tool