IvanYanez10 / alura_challenge_encryptor

Encryptor oracle alura first challenge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Alura challenge

User interface desktop version deploy UI

When the page loads it generates a random number that is used for the shift

var alphabet = "abcdefghijklmnopqrstuvwxyz";
var newalpha = "";

function shift(n) {  
  for (let i = 0; i < alphabet.length; i++) {
    let offset = (i + n) % alphabet.length;
    newalpha += alphabet[offset];
  }  
}

Encoder working flow

Cesar algorithm

javascript function to encode message

function encode(message) {
  let result = "";
  message = message.toLowerCase();
  for (let i = 0; i < message.length; i++) {
    let index = alphabet.indexOf(message[i]);
    result += newalpha[index];
  }
  return result;
}

Decoder working flow

Cesar algorithm

javascript function to decode message

function decode(message) {
  let result = "";
  message = message.toLowerCase();
  for (let i = 0; i < message.length; i++) {
    let index = newalpha.indexOf(message[i]);
    result += alphabet[index];
  }
  return result;
}

How Cesars works

The Caesar cipher (or Caesar code) is a monoalphabetic substitution cipher, where each letter is replaced by another letter located a little further in the alphabet (therefore shifted but always the same for given cipher message). The shift distance is chosen by a number called the offset, which can be right (A to B) or left (B to A).

Cesar algorithm

References

https://www.dcode.fr/caesar-cipher

https://www.thatsoftwaredude.com/content/11425/implementing-a-caesar-cipher-in-javascript

Deploy

Github pages https://ivanyanez10.github.io/alura_challenge_encryptor/

About

Encryptor oracle alura first challenge


Languages

Language:CSS 41.4%Language:JavaScript 32.9%Language:HTML 25.7%