2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -1,29 +1,24 @@
<html><head><title>Vigenère</title></head>
<body><pre id='x'></pre>
<script type="application/javascript">
function disp(x) {
var e = document.createTextNode(x + '\n');
document.getElementById('x').appendChild(e);
// helpers
// helper
function ordA(a) {
return a.charCodeAt(0) - 65;
}
function ord(x) { return x.charCodeAt(0) }
function chr(x) { return String.fromCharCode(x) }
function rot(a, b, decode) {
return decode ? chr((26 + ord(a) - ord(b)) % 26 + ord('A'))
: chr((26 + ord(a) + ord(b) - ord('A') * 2) % 26 + ord('A')) }
function trans(msg, key, decode) {
var i = 0;
key = key.toUpperCase();
msg = msg.toUpperCase().replace(/[^A-Z]/g, '');
return msg.replace(/([A-Z])/g,
function($1) { return rot($1, key[i++ % key.length], decode) });
// vigenere
function vigenere(text, key, decode) {
var i = 0, b;
key = key.toUpperCase().replace(/[^A-Z]/g, '');
return text.toUpperCase().replace(/[^A-Z]/g, '').replace(/[A-Z]/g, function(a) {
b = key[i++ % key.length];
return String.fromCharCode(((ordA(a) + (decode ? 26 - ordA(b) : ordA(b))) % 26 + 65));
});
}
var msg = "The quick brown fox Jumped over the lazy Dog the lazy dog lazy dog dog";
var key = 'VIGENERECIPHER';
var enc = trans(msg, key);
var dec = trans(enc, key, 'decipher');
// example
var text = "The quick brown fox Jumped over the lazy Dog the lazy dog lazy dog dog";
var key = 'alex';
var enc = vigenere(text,key);
var dec = vigenere(enc,key,true);
disp("Original:" + msg + "\nEncoded: " + enc + "\nDecoded: " + dec);
</script></body></html>
console.log(enc);
console.log(dec);