Skip to content

Instantly share code, notes, and snippets.

@rheajt
Last active July 18, 2016 01:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rheajt/61fa17ea87216fa7a8078bd1a0fd2078 to your computer and use it in GitHub Desktop.
Save rheajt/61fa17ea87216fa7a8078bd1a0fd2078 to your computer and use it in GitHub Desktop.

Caesarize

The Caesar Cypher is the simplest of the codes I could find. Simply put, it shifts the alphabet a certain number of letters over to encode a message.

function Caesarize(shiftNum) {
this.shiftNum = shiftNum; //the number to shift the alphabet
}
Caesarize.prototype.codify = function(sentence) {
var sentenceArr = [];
var shiftNum = this.shiftNum;
sentence = sentence.toLowerCase();
//private function to get the shifted letter
var letterize = function(letter) {
var 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'];
var pos = letters.indexOf(letter);
var shiftPos = pos + shiftNum;
if(pos > -1) {
if(shiftPos < letters.length) {
return letters[shiftPos];
} else {
return letters[shiftPos - letters.length];
}
} else {
return ' ';
}
}
for(var i = 0; i < sentence.length; i++) {
sentenceArr.push(letterize(sentence[i]));
}
return sentenceArr.join('');
}
Caesarize.prototype.uncodify = function(sentence) {
var sentenceArr = [];
var shiftNum = this.shiftNum;
//private function to unshift each letter in the code
var deletterize = function(letter) {
var 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'];
var pos = letters.indexOf(letter);
var shiftPos = pos - shiftNum;
if(pos > -1) {
if(shiftPos >= 0) {
return letters[shiftPos];
} else {
return letters[shiftPos + letters.length];
}
} else {
return ' ';
}
}
for(var i = 0; i < sentence.length; i++) {
sentenceArr.push(deletterize(sentence[i]));
}
return sentenceArr.join('');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment