1-5 получится 135246, 2-3 -- 125346.
let key_first = [5, 3, 1, 2, 4, 6];
key_first.forEach((el, i) => {
let
item_1 = key_first.indexOf(key_first[i]),
item_2 = key_first.indexOf(i + 1);
console.log(key_first[item_2]);
console.log(key_first[item_1]);
[key_first[item_1], key_first[item_2]] = [key_first[item_2], key_first[item_1]];
console.log(key_first);
});
Открытый текст: "ШИФРОВАНИЕ_ПЕРЕСТАНОВКОЙ".
Матрица из четырех столбцов
Ключи: k1 5-3-1-2-4-6;
Исходная матрица:
ШИФР
ОВАН
ИЕ_П
ЕРЕС
ТАНО
ВКОЙ
По ключу k1 : 5-3-1-2-4-6;
ТАНО
ие_п
шифр
ован
ЕРЕС
ВКОЙ
Теперь переставляем все строки исходной матрицы по ключу k1: 1-5, 2-3, 3-1, 4 -2, 5-4, 6-6.
Получаем зашифрованную матрицу:
3 ие_п
5 ТАНО
4 ЕРЕС
1 шифр
2 ован
6 ВКОЙ