Помощь в реализации шифра вертикальной перестановки
Здравствуйте.
Нужен совет. Ситуация - реализовать шифр вертикальной перестановки. И , соответственно - обратный процесс - дешифровка. Дошел до этого: загоняю текст в квадратную матрицу(соответственно,есл и кол-во символов не кратное, добавляю символ"_", чтобы привести к квадратной матрице. Далее не могу реализовать: 1) ввод ключа. (для каждой размерности матрицы - свой ключ - это зависит т длины фразы, которую шифрую) 2) присваивание к каждому столбцу порядкового номера 3) вывод функции - считываются столбцы,согласно ключу.(если ключ 312, то выписываются символы сначала с 1 столбца, потом со 2го и т.д)-тут получаем зашифрованную фразу 4) обратный алгоритм. В JS начинающий, буду рад любой помощи. ВОт то,что сделано на данный момент: <script type="text/javascript" > function crypt(){ var string = prompt("enter string"); var lenStr = string.length; //длина строки var lenMat = Math.ceil(Math.sqrt(lenStr)); // длина квадратной матрицы. Округляется в большую сторону до ближайшего целого if (lenStr < Math.pow(lenMat, 2)) { // если длина строки меньше чем длина матрицы^2 то while (string.length < Math.pow(lenMat, 2)) { //пока длина строки меньше матрицы^2 string = string + "_"; // прибавляем к строке знак "_" } //итого длина строки становится квадратной - 4,9,16,25... } document.write("<table><tr>"); var arrNum = 0; for(var i = 0; i < string.length; i++) { if ((i+1)%lenMat != 0){ document.write("<td style='width:15px;text-align:center;font-size:18;'>" + string[i] + "</td>"); } else { document.write("<td style='width:15px;text-align:center;font-size:18;'>" + string[i] + "</td></tr><tr>"); arrNum++; } } document.write("</tr></table>") } </script> |
никто не поможет?
|
Часовой пояс GMT +3, время: 14:28. |