Skip to content

A Java program for encrypting and decrypting messages using the Vigenère Cipher.

Notifications You must be signed in to change notification settings

22raor/VigenereCipher

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vigenère Cipher

A Java program that implements the Vigenère Cipher, a polyalphabetic cipher using interwoven Caesar ciphers.

Usage

To start, run the main method in the Main class. This will open up a window where you can type in your cipher/plain text and the key. Then, you can encrypt or decrypt messages using the Vigenère Cipher by clicking the Encrypt/Decrypt buttons.

How It Works

The Vigenère Cipher can be used to encrypt and decrypt messages using the following 26x26 grid.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

Although the table may look daunting, it's really just a series of Caesar ciphers!

Here is how the Vigenère Cipher is used to encrypt a message in plain text:

Step 1: Using the key word/phrase, generate a key with the same length as the plain text. Start by removing all spaces and punctuation. If the key is longer than the plain text, start from the beginning of the keyword and use as many letters as needed for the key. If the plain text is longer than the key (as is usually the case), once the end of the keyword is reached, just repeat the keyword as many times as necessary.

Step 2: Now, since the plain text and the key have the same length, we can assign each letter in the plain text to a letter in the key.

Step 3: Each letter in the key denotes a shift, where A=0, B=1, C=2, and so on, up to Z=25. So now, since each letter in the plain text message has been assigned a shift, simply apply the corresponding shift to each letter to obtain your encrypted message.

This can be reversed to decrypt messages; instead of adding the shifts, subtract them.

About

A Java program for encrypting and decrypting messages using the Vigenère Cipher.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%