Здравствуйте, мне любопытно, как делать дешифраторы на основании существующего алгоритма?
Это я делаю с ознакомительными целями.
Имеется код шифратор, хочется получить как бы обратную функцию(Прям как в мат анализе)
function shifr(text) {
var alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюяӘІҢҒҮҰҚӨҺәіңғүұқөһ";
var key = getkey();// 'nx9MwEJN2KZ6e1NPiCAaHTxn9QX0iXcjLUoY9fdpc6J';
var len = alphabet.length;
var table = new Array();
for (var i = 0; i < len; i++) {
table[i] = alphabet.substring(i) + alphabet.substring(0, i);
}
var word = text;
var shfr = "";
while (key.length < word.length)
key += key;
for (var i = 0; i < word.length; i++) {
if (alphabet.indexOf(word[i]) > -1) {
shfr = shfr + table[alphabet.indexOf(key[i])][alphabet.indexOf(word[i])];
}
else
shfr = shfr + word[i];
}
return shfr;
}
Вот как это работает:
"0" -> "W"
"00" -> "Wg"
"000" -> "WgE"
"0000" -> "WgEM"
Заметил что все статично работает, функция getkey не привязан ни к чему(все статично)
Помогите, пожалуйста разобраться.)))