dosya97
@dosya97
Fullstack web-developer

Как писать дешифратор, если известен алгоритм?

Здравствуйте, мне любопытно, как делать дешифраторы на основании существующего алгоритма?
Это я делаю с ознакомительными целями.
Имеется код шифратор, хочется получить как бы обратную функцию(Прям как в мат анализе)
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 не привязан ни к чему(все статично)
Помогите, пожалуйста разобраться.)))
  • Вопрос задан
  • 1059 просмотров
Пригласить эксперта
Ответы на вопрос 1
usdglander
@usdglander
Yipee-ki-yay
На вскидку, надо генерировать просто обратную сдвиговую таблицу.
for (var i = 0; i < len; i++) {
    table[i] = alphabet.substring(0, i) + alphabet.substring(i);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы