This repository has been archived on 2024-09-11. You can view files and clone it, but cannot push or open issues or pull requests.
Files
IT2/html/tasks/chapter_5/task12_encryption/script.js
2020-01-29 12:56:06 +01:00

71 lines
1.7 KiB
JavaScript
Executable File

var encForm = document.getElementById("encrypt");
var emess = document.getElementById("emess");
var eciph = document.getElementById("enum");
var etext = document.getElementById("etext");
encForm.onsubmit=function(evt){
evt.preventDefault();
etext.innerHTML = encrypt(emess.value, parseInt(eciph.value));
}
var decForm = document.getElementById("decrypt");
var dmess = document.getElementById("dmess");
var dciph = document.getElementById("dnum");
var dtext = document.getElementById("dtext");
decForm.onsubmit=function(evt){
evt.preventDefault();
dtext.innerHTML = decrypt(dmess.value, parseInt(dciph.value));
}
function mod(x,n){
return ((x%n)+n)%n;
}
function encrypt(mess,number){
messArray=mess.split('');
result=[];
for (i in messArray){
x=messArray[i].charCodeAt(0);
if (x>64 && x<91){
x-=64;
x+=number;
x=mod(x,26);
x+=64;
} else if (x>96 && x<123){
x-=96;
x+=number;
x=mod(x,26);
x+=96;
}
result.push(String.fromCharCode(x));
}
result = result.join("");
return result;
}
function decrypt(mess,number){
messArray=mess.split('');
result=[];
for (i in messArray){
x=messArray[i].charCodeAt(0);
if (x>64 && x<91){
x-=64;
x-=number;
x=mod(x,26);
x+=64;
} else if (x>96 && x<123){
x-=96;
x-=number;
x=mod(x,26);
x+=96;
}
result.push(String.fromCharCode(x));
}
result = result.join("");
return result;
}