From 511edebfaf19e857e71fb944133ff1fe7c205cfb Mon Sep 17 00:00:00 2001 From: Angelina Tsuboi <51937266+angelina-tsuboi@users.noreply.github.com> Date: Sun, 25 Oct 2020 15:24:01 -0700 Subject: [PATCH] Added a Vigenere Cipher I added a Vigenere cipher to the project :) --- VigenereCipher/index.js | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 VigenereCipher/index.js diff --git a/VigenereCipher/index.js b/VigenereCipher/index.js new file mode 100644 index 00000000..65fca6a4 --- /dev/null +++ b/VigenereCipher/index.js @@ -0,0 +1,51 @@ +let letters = ["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"]; + +let table = [letters] + +let plaintext = "ATTACKATDAWN"; +let key = "LEMON"; +let repeatKey = ""; +let solution = ""; + +let remainder = plaintext.length % key.length; +let round = Math.round(plaintext.length / key.length); + +for(let i = 0; i < round; i++){ + repeatKey += key; +} + +for(let i = 0; i < remainder; i++){ + repeatKey += key[i]; +} + + +//Set up tables +function getLetterSet(set, index){ + let first = set[0]; + let newSet = []; + for(let i = 1; i <= 25; i++){ + newSet.push(set[i]) + } + newSet.push(first); + table.push(newSet); + if(index <= 23){ + getLetterSet(newSet, index + 1); + }else{ + return table; + } +} + +let newTable = getLetterSet(letters, 0); + + +//Solution +for(let i = 0; i < plaintext.length; i++){ + let plainLetter = plaintext[i]; + let keyLetter = repeatKey[i]; + let rowNum = letters.indexOf(keyLetter); + let colNum = letters.indexOf(plainLetter); + let cipher = table[rowNum][colNum]; + solution += cipher; +} + +console.log(solution)