Eric-Arellano / encrypted-caesar-chat

Allows Caesar and Vigenere encryption of a String through multiple user interfaces (e.g. networked chat app).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  1. Clone this repo.
  2. Build with command line gradlew build (pc) or ./gradlew build (mac/linux)

Run program

Interactive console app

  1. ./run.sh

CLI

  1. To encrypt: ./run.sh -e <message> <key>
  2. 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
  1. To start server and wait for client's message: ./run.sh <port-number>
  2. To start server and send message to client when it connects: ./run.sh <port-number> <-e or -d> <message> <key>
Start client
  1. To start client and read from specified server: ./run.sh <server-host-name> <port-number>
  2. 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

About

Allows Caesar and Vigenere encryption of a String through multiple user interfaces (e.g. networked chat app).


Languages

Language:Java 99.9%Language:Shell 0.1%