Листинги разработанных программ

Шифр Цезаря

<html>

<head>

<title>Шифр Цезаря</title>

</head>

<body>

<form name="form1">

Текст:

<input name="text1" type="text" size="100" value=""><br>

Ключ:

<input name="text2" type="text" size="2" value=""><br>

<input onclick="z()" type="button" value="Шифровать">

<input onclick="r()" type="button" value="Расшифровать"><br>

<script type="text/javascript">

function z(){

var A=["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я"];//массив алфавита

var Z=[];// массив алфавита замены

var a = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строка алфавита

var text = document.form1.text1.value.toUpperCase();//ввод текста

var res= "";

var key = 1*document.form1.text2.value;// получение числовой формы сдвига

for (i=0; i<33; i++)

{

if (i<key) Z[i + (33-key)] = A[i];

else Z[i-key] = A[i];// заполнение массива алфавита замены

}

z=Z.join("");// получение строки замены

for (i = 0; i < text.length; i++)//длина сообщения

s = a.lastIndexOf(text.charAt(i)),//находим индекс в алфавите совпадающий с введенными символами

s = z.charAt(s),//находим в строке замены нужный символ

res += s;

alert(res);

}

function r(){//расшифрование

var A=["А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я"];

var Z=[];

var a = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";

var text = document.form1.text1.value.toUpperCase();//ввод текста

var res = "";

var key = 1*document.form1.text2.value;

for (i=0; i<33; i++)

{

if ((i+key)>32) Z[i - (33-key)] = A[i];

else Z[i+key] = A[i];

}

z=Z.join("");

for (i = 0; i < text.length; i++)//длина сообщения

s = a.lastIndexOf(text.charAt(i)),//находим индекс в алфавите совпадающий с введенными символами

s = z.charAt(s),//находим в строке замены нужный символ

res+= s;

alert(res)

}

</script>

</body>

</html>

Атбаш

<html>

<head>

<title>Атбаш</title>

</head>

<body>

<form name="form1">

Введите текст:

<input name="text1" type="text" size="100" value=""><br>

<input onclick="at()" type="button" value="Результат"><br>

</form>

<script language="JavaScript">

function at() {

var a = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';//исходный алфавит

var z = 'ЯЮЭЬЫЪЩШЧЦХФУТСРПОНМЛКЙИЗЖЁЕДГВБА';//алфавит замены

var res = '',

text=document.form1.text1.value.toUpperCase();//перевод в верхний регистр

for(i = 0; i < text.length; i++) {

s = a.indexOf(text.charAt(i));//находим позицию введенного символа в алфавите

res=res+z.charAt(s);//присваиваем переменной "r" символ стоящий на найденной позиции

}

alert(res);//вывод результата

}

</script>

</body>

</html>

Квадрат Полибия

<html>

<head>

<title>

Квадрат Полибия

</title>

<script type="text/javascript">

function Polib1()//функция для шифрования

{

var text=document.getElementById("isxtext").value.toUpperCase()//присваиваем переменной введенный текст, переводим буквы введенного текста в верхний регистр

text=text.replace(/\s+/g,''),//удаляем пробелы из введенного текста

res='',//хранение для результата

A="КОТАБВГДЕЁЖЗИЙЛМНПРСУФХЦЧШЩЪЫЬЭЮЯ.,-",//начальный алфавит

M="1234567";

for (i=0; i<text.length; i++)

{

m=A.indexOf(text.charAt(i));//находим индекс

res=res+M.charAt(Math.floor(m/5));//находим нужную строки

res=res+M.charAt(m%5);//находим нужный столбец

}

alert(res);//выводим результат

}

function Polib2(){//функция для расшифрования

var text=document.getElementById("isxtext").value,//считывание введенного текста

text=text.replace(/\s+/g,''),//удаление пробелов

res='',//хранение для результата

A="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ.,-",

M="123456";

for (i=0; i<text.length; i+=2)

{

m1=M.indexOf(text.charAt(i+1)); // берем индекс второго символа

m=M.indexOf(text.charAt(i)); // берем индекс первого символа

res=res+A.charAt(m*6+m1); // присваиваем переменной res символ стоящий на этих позициях A

}

alert(res);//выводим результат

}

</script>

</head>

<body>

Введите исходный текст:<br>

<input size="120" value="23 34 31 34 42 55 16 36 43 26 24 23 11 41 16 36 16 12 36 34 33 16 26 43 35 24 52 56" id="isxtext"><br>

<input type="button" onclick="Polib1()" value="шифрование">

<input type="button" onclick="Polib2()" value="расшифрование">

</body>

</html>

Метод перестановок

<html>

<head>

<title>Метод перестановок</title>

</head>

<body>

Введите ключ записи:

<input id="text1" type="text" size="2"value="10">

<input id="text2" type="text" size="2"value="1">

<input id="text3" type="text" size="2"value="2">

<input id="text4" type="text" size="2"value="3">

<input id="text5" type="text" size="2"value="9">

<input id="text6" type="text" size="2"value="4">

<input id="text7" type="text" size="2"value="8">

<input id="text8" type="text" size="2"value="5">

<input id="text9" type="text" size="2"value="7">

<input id="text10" type="text" size="2"value="6"><br>

Введите ключ считывания:

<input id="text11" type="text" size="2" value="10">

<input id="text12" type="text" size="2"value="1">

<input id="text13" type="text" size="2"value="2">

<input id="text14" type="text" size="2"value="3">

<input id="text15" type="text" size="2"value="6">

<input id="text16" type="text" size="2"value="4">

<input id="text17" type="text" size="2"value="5">

<input id="text18" type="text" size="2"value="7">

<input id="text19" type="text" size="2"value="9">

<input id="text20" type="text" size="2"value="8"><br>

Tекст:<br>

<input id="text21" type="text" size="200" value=""/><br>

<input onclick="Z()" type="button" value="Шифровать"/>

<input onclick="R()" type="button" value="Расшифровать"/><br>

<script type="text/javascript">

var z1=document.getElementById('text1').value*1,

z2=document.getElementById('text2').value*1,

z3=document.getElementById('text3').value*1,

z4=document.getElementById('text4').value*1,

z5=document.getElementById('text5').value*1,

z6=document.getElementById('text6').value*1,

z7=document.getElementById('text7').value*1,

z8=document.getElementById('text8').value*1,

z9=document.getElementById('text9').value*1,

z10=document.getElementById('text10').value*1;////считывание и преобразование в число ключа записи

var s1=document.getElementById('text11').value*1,

s2=document.getElementById('text12').value*1,

s3=document.getElementById('text13').value*1,

s4=document.getElementById('text14').value*1,

s5=document.getElementById('text15').value*1,

s6=document.getElementById('text16').value*1,

s7=document.getElementById('text17').value*1,

s8=document.getElementById('text18').value*1,

s9=document.getElementById('text19').value*1,

s10=document.getElementById('text20').value*1;//считывание и преобразование в число ключа считывания

var r1=[]; var r2=[]; var r3=[]; var r4=[]; var r5=[]; var r6=[];

var r7=[]; var r8=[]; var r9=[]; var r10=[]; var m1=[]; var m2=[]; var z=[]; var s=[];

m1=[r1,r2,r3,r4,r5,r6,r7,r8,r9,r10];//массив открытого текста

z=[z1,z2,z3,z4,z5,z6,z7,z8,z9,z10];

s=[s1,s2,s3,s4,s5,s6,s7,s8,s9,s10];//массивы ключей записи и ключей считывания

function Z(){

var text=document.getElementById('text21').value;//считывание текста

var res="";

for (i=0; i<10; i++){//разбиения открытого текста на массивы по 10 элементов

r1[i]=text.charAt(i)

r2[i]=text.charAt((i+10))

r3[i]=text.charAt((i+20))

r4[i]=text.charAt((i+30))

r5[i]=text.charAt((i+40))

r6[i]=text.charAt((i+50))

r7[i]=text.charAt((i+60))

r8[i]=text.charAt((i+70))

r9[i]=text.charAt((i+80))

r10[i]=text.charAt((i+90))

}

for (i=0; i<10; i++){m2[z[i]-1]=m1[i];}//перестановка элементов массива

for(j=0;j<10;j++){m=m2[j];res+=m[s1-1];}//выбор элементов массива

for(j=0;j<10;j++){m=m2[j];res+=m[s2-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[s3-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[s4-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[s5-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[s6-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[s7-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[s8-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[s9-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[s10-1];}

alert(res);

}

function R(){

var text=document.getElementById('text21').value;//считывание текста

var res="";//Переменные для результата

for (i=0; i<10; i++){//разбиения открытого текста

r1[i]=text.charAt(i)

r2[i]=text.charAt((i+10))

r3[i]=text.charAt((i+20))

r4[i]=text.charAt((i+30))

r5[i]=text.charAt((i+40))

r6[i]=text.charAt((i+50))

r7[i]=text.charAt((i+60))

r8[i]=text.charAt((i+70))

r9[i]=text.charAt((i+80))

r10[i]=text.charAt((i+90))

}

for (i=0; i<10; i++){m2[s[i]-1]=m1[i];}

for(j=0;j<10;j++){m=m2[j];res+=m[z1-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z2-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z3-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z4-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z5-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z6-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z7-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z8-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z9-1];}

for(j=0;j<10;j++){m=m2[j];res+=m[z10-1];}

alert(res);

}

</script>

</body>

</html>

Метод гаммирования

<html>

<head>

<title>Шифрование методом гаммирования</title>

</head>

<body>

<script type="text/javascript">

function gammir(){

var gam1=document.form1.text2.value*1;

var gam2=document.form1.text3.value*1;

var gam3=document.form1.text4.value*1;

var gam4=document.form1.text5.value*1;

var gam5=document.form1.text6.value*1;//создание переменных равных гамме

var res="";//результат

var mgam = [];//массив для гаммы

var text=document.form1.text1.value;//считывание введенного текста

mgam[0]=gam1;//создание массивов равных гамме

mgam[1]=gam2;

mgam[2]=gam3;

mgam[3]=gam4;

mgam[4]=gam5

for (i=0; i<text.length; i++){//цикл для введенного текста

var a =text.charCodeAt(i);//присваивание переменной символа с индексом введенного текста

var b =a-0x350;

var x = i%5;//берем нужную гамму

gam=mgam[x];//берем элемент массива

y=b^gam;//исключающеей или

res += String.fromCharCode(y + 0x350);//присваеваем переменной получившуюся строку

}

alert(res);//выводим результат

}

</script>

</head>

<body>

<form name="form1">

Текст:

<input name="text1" type="text" size="100" value=""><br>

Гамма:

<input name="text2" type="text" size="2" value="6">

<input name="text3" type="text" size="2" value="12">

<input name="text4" type="text" size="2" value="22">

<input name="text5" type="text" size="2" value="5">

<input name="text6" type="text" size="2" value="3"><br>

<input onclick="gammir()" type="button" value="Результат">

</form>

<!--ввод сообщения и гаммы -->

</body>

</html>

Наши рекомендации