ROT / Shift cipher generator and solver
Just playing around with ciphers again. No really use for this nowadays since it’s easilly broken, but I figured I’ll post it here anyway.
Here you can generate a cipher text based on rotation/shift in the alphabet.
Remember that the chars that will be shifted are ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Solve ciphertext
Ciphertext:
Shift steps:
Here’s the javascript source:
var ROT = {
chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
generate: function(plaintext, shift)
{
var ciphertext = this.rotate(plaintext, parseInt(shift));
return ciphertext;
},
solve: function(ciphertext, shift)
{
var plaintext = this.rotate(ciphertext, -1*parseInt(shift));
return plaintext;
},
rotate: function(str, shift, pos)
{
var pos = pos || 0;
if(!str.length)
return '';
var old_char = str.charAt(pos);
var old_pos = this.chars.indexOf(old_char.toUpperCase());
if(old_pos < 0)//Some other character
return old_char.toUpperCase() + this.rotate(str, shift, pos+1);
var new_pos = (old_pos + shift) % this.chars.length;
new_pos = new_pos < 0 ? this.chars.length + new_pos : new_pos;
var new_char = this.chars.charAt(new_pos);
if(str.length-1 > pos)
return new_char + this.rotate(str, shift, pos+1);
return new_char;
}
}