0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 6
1

Не получается разобраться с шифром

10.01.2017, 04:03. Показов 493. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем, есть программа, которая шифрует данные, но в ней только русский алфавит без каких либо знаков препинания, шифрует только его. В общем, нужно добавить знак пробела, без понятия как это сделать. Спасибо.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<!doctype html><html><head><meta charset="utf-8"></head>
 
<body>
<style>
body{
    font-size:22px;
}
h1,h3{
    margin:0;
    padding:0;
}
table{
    margin:10px;
}
textarea{
    height:50px;
    width:400px;
}
#table td{
    color:#333333;
    font-size:22px;
    box-shadow:1px 1px 2px #000000;
    text-align:center;
}
.but{
    outline:none;
    color:#FFF;
    background:#3C3;
    padding:7px;
    border-radius:5px;
    border:none;
    cursor:pointer;
}
.but:hover{
    background:#0F3;
}
</style>
 
<h1>Лабораторная работа № 2</h1>
<h3>метода шифрования моноалфавитным шифром</h3>
<div>
  <div style="display:inline-block">
   <table>
     <tr><td><textarea cols="40" rows="6" id="text1" onKeyUp="proverka(this)"></textarea></td></tr>
     <tr><td>шифр: <input id="key1"  onKeyUp="proverka(this)"></td></tr>
     <tr><td><input class="but" type="button" value="шифровать" onClick="shif()"></td></tr>
   </table>
 
   <table>
     <tr><td><textarea cols="40" rows="6" id="kod" onKeyUp="proverka(this)"></textarea></td></tr>
     <tr><td>шифр: <input id="key2" onKeyUp="proverka(this)"></td></tr>
     <tr><td><input class="but" type="button" value="дешифровать" onClick="deshif()"></td></tr>
   </table>
 
   <table>
     <tr><td><textarea cols="40" rows="6" id="text2" onKeyUp="proverka(this)"></textarea></td></tr>
   </table>
  </div>
  <div style="display:inline-block; vertical-align:top; margin:15px;" id="test"></div>
</div>
<script>
function proverka(el){
    var arr=el.value;
    var kol=arr.length;
    for(var i=0;i<=kol;i++){
      if(arr[i].charCodeAt(0)<1072 || arr[i].charCodeAt(0)>1103){el.value="";break;}
    }
}
function shif(){
    var text = document.getElementById("text1").value;
    var t_length = document.getElementById("text1").value.length;
    
    var key = document.getElementById("key1").value;
    var key_length = document.getElementById("key1").value.length;
    
    //создаем массив---------------------------------------------
    var mas=[];
    for(var i=0;i<key_length+1;i++){
        mas[i]=[];
        for(var j=0;j<32;j++){
            mas[i][j]=String.fromCharCode(j+1072);
        }
    }
    // делаем смещение---------------------------------------------------
    for(var i=0;i<key_length;i++){
        while(key[i] != mas[i+1][0]){
            var buf= mas[i+1][0];
            for(var j=0;j<32;j++){
                if(j==31){
                    mas[i+1][j]=buf;
                }else mas[i+1][j] = mas[i+1][j+1];  
            }
            
        }
    }
    //просто показываем шифратор-------------------------------------------------
    test1='';
    for(var i=0;i<key_length+1;i++){
        test1 += "<tr>";
        for(var j=0;j<32;j++){
            if(i==0)test1 += "<td style='color:red'>"+mas[i][j]+"</td>";
            else if(j==0 &&i!=0)test1 += "<td style='color:blue'>"+mas[i][j]+"</td>";
            else test1 += "<td>"+mas[i][j]+"</td>";
        }
        test1 += "</tr>";
    }
    document.getElementById("test").innerHTML = "<table id='table'>"+test1+"</table>";
    //сообщние в массив по цифрам-----------------------------------
    var TextMas=[];
    for(var i=0;i<2;i++){
        var n=1;
        TextMas[i]=[];
        for(var j=0;j<t_length;j++){
            if(i==0)TextMas[i][j] = text[j];
            if(i==1){
                TextMas[i][j] = (n<=key_length)? n : n=1;
                n++;
            }
        }
    }
    //----------------------------------------------------------
    test1='';
    var shifr=[];
    for(var i=0;i<t_length;i++){
        for(var j=0;j<32;j++){
            if(TextMas[0][i] == mas[0][j]){
                shifr[i] = mas[TextMas[1][i]][j];
                test1 += shifr[i];
            }
        }
    }
    document.getElementById("kod").value = test1;
}
 
//------------------------------------------------------------
function deshif(){
    var text = document.getElementById("kod").value;
    var t_length = document.getElementById("kod").value.length;
    
    var key = document.getElementById("key2").value;
    var key_length = document.getElementById("key2").value.length;
//создаем массив---------------------------------------------
    var mas=[];
    for(var i=0;i<key_length+1;i++){
        mas[i]=[];
        for(var j=0;j<32;j++){
            mas[i][j]=String.fromCharCode(j+1072);
        }
    }
    // делаем смещение---------------------------------------------------
    for(var i=0;i<key_length;i++){
        while(key[i] != mas[i+1][0]){
            var buf= mas[i+1][0];
            for(var j=0;j<32;j++){
                if(j==31){
                    mas[i+1][j]=buf;
                }else mas[i+1][j] = mas[i+1][j+1];  
            }
            
        }
    }
    
    //сообщние в массив по цифрам-----------------------------------
    var TextMas=[];
    for(var i=0;i<2;i++){
        var n=1;
        TextMas[i]=[];
        for(var j=0;j<t_length;j++){
            if(i==0)TextMas[i][j] = text[j];
            if(i==1){
                TextMas[i][j] = (n<=key_length)? n : n=1;
                n++;
            }
        }
    }
    //----------------------------------------------------------
    test1='';
    var otvet=[];
    for(var i=0;i<t_length;i++){
        for(var j=0;j<32;j++){
            if(TextMas[0][i] == mas[TextMas[1][i]][j]){
                otvet[i] = mas[0][j];
                test1 += otvet[i];
            }
        }
    }
    document.getElementById("text2").value = test1;
}
//------------------------------------------------------------
</script>
</body>
</html>
 Комментарий модератора 
Для оформления разметки, содержащей javascript используйте тег [PHPHTML]!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2017, 04:03
Ответы с готовыми решениями:

Разобраться с шифром
Имеется задача со следующим условием: Необходимо подобрать пароль для зашифрованного текста, если...

Не получается разобраться
Здравствуйте нужна помощ. Вот код Dim x As Double Private Sub Image1_Click() ...

Не получается разобраться с циклом
Здравствуйте. Уже больше суток не могу найти решение проблемы. В школьное время занимался аля...

Не получается разобраться с указателями
Всем доброго времени суток. Я читаю книгу Ричи и Керниган. Прошёл главу &quot;указатели&quot;, но так и не...

0
10.01.2017, 04:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2017, 04:03
Помогаю со студенческими работами здесь

Не получается разобраться в коде
Ребят нужна помощь не могу разобраться вот в таком. Написан тест , а как разобраться где правда где...

Не получается разобраться с VBA
Задание: Заполнить левый верхний квадрат размером N*N ячеек рабочего листа excel целыми...

Не получается разобраться в макросе
Выдает ошибку (end with without with) Dim i As Integer End With For i = 1 To 10 With...

Не получается разобраться с массивами
Учу С++,остановился на массивах и строках и почему-то не получается решать,не могу понять.Особенно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru