Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/103: Рейтинг темы: голосов - 103, средняя оценка - 4.63
6 / 6 / 12
Регистрация: 27.10.2015
Сообщений: 43

Шифр Виженера

20.11.2015, 10:47. Показов 19129. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача такая:
Реализовать шифр Виженера с шифровкой как можно больше языков.
Немогу понять как распознать эти языки. Т.к. в гугле не нашел информации или плохо искал.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2015, 10:47
Ответы с готовыми решениями:

Шифратор и дешифратор Виженера
Необходимо написать программу шифратора и дешифратора с ключом, метод квадрат Виженера. Помогите,пожалуйста, я не понимаю как это делать((

Шифр на js
<img src="cv_cat.png"> <script src="sha1.js"></script> <script...

Шифр Цезаря и шифр Виженера
1. Используя шифр Цезаря расшифруйте слово ЛГПЗРГ. Шифр Цезаря для русского алфавита со сдвигом на три позиции вправо 2. Используя шифр...

1
 Аватар для arcmag
347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
20.11.2015, 11:49
Лучший ответ Сообщение было отмечено MrCoub как решение

Решение

Вот я как раз что то похожее уже делал, правда что то я вроде бы там не доделал но щас потестил все вроде бы работает...

JavaScript
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
    var cypher = (function () {
        var cypher = {}, register = function (e) {return e === e.toUpperCase();};
        cypher.language = {
            ru : "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ".split(""),
            en : "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),
            numbers : [0,1,2,3,4,5,6,7,8,9],
            symbols : "~!@#$%^&*()_+=-{};|\|/,.?><;:№ ".split(""),
            all     : [],
            joinAll : function (){
                cypher.language.all = [];
                for (var i in this) {
                    if (typeof this[i] !== "function" && i !== "all") {
                        cypher.language.all = cypher.language.all.concat (this[i]);
                    }
                }
            }
        }
 
        cypher.vizhener = {
            square : [],
            genSqViz : function (lang) {
                var l = cypher.language[lang];
                for (var i = 0; i < l.length; i++) {
                    this.square[i] = l.slice(i).concat(l.slice(0, i));
                }
            },
            encryption : function (lang, text, key) {
                if (lang === "all") cypher.language.joinAll ();
                else if (!Array.isArray(cypher.language[lang])) return;
                this.genSqViz(lang);
 
                var sText = text;
 
                text = text.toUpperCase();
                key  = key.toUpperCase();
 
                var s = "", l = cypher.language[lang];
                for (var i = 0; i < text.length; i++) {
                    s += this.square[l.indexOf(text[i])][l.indexOf(key[i])];
                }
 
                return s.split ("").map (function (e, i, a) {return register (sText[i]) ? e : e.toLowerCase();}).join("");
            },
            decryption : function (lang, key, cipher) {
                if (lang === "all") cypher.language.joinAll ();
                else if (!Array.isArray(cypher.language[lang])) return;
                this.genSqViz(lang);
 
                var sCipher = cipher;
 
                cipher = cipher.toUpperCase();
                key    = key.toUpperCase();
                var s = "",  l = cypher.language[lang];
                for (var i = 0; i < cipher.length; i++) {
                    var row = l.indexOf(key[i])
                    coll = this.square[row].indexOf(cipher[i]);
                    s += l[coll];
                }
                return s.split ("").map (function (e, i, a) {return register (sCipher[i]) ? e : e.toLowerCase();}).join("");
            },
            outS : function () {
                for (var i = 0; i < this.square.length; i++) {
                    document.write(this.square[i].join ("") + "<br>");
                }
            }
        };
 
        cypher.caesar = {
            encryption : function (lang, text, slip) {
                var l = cypher.language[lang], text = text.split(""), s = "";
                for (var i = 0; i < text.length; i++) {
                    var index = l.indexOf (text[i]) + slip;
                    if (index >= l.length) index -= l.length;
                    s += l[index];
                }
                return s;
            },
            decryption : function (lang, cipher, slip) {
                var l = cypher.language[lang], cipher = cipher.split(""), s = "";
                for (var i = 0; i < cipher.length; i++) {
                    var index = l.indexOf (cipher[i]) - slip;
                    if (index < 0) index += l.length;
                    s += l[index];
                }
                return s;
            }
        };
        return cypher;
    } ());
 
    document.write (cypher.vizhener.encryption ("en", "ATTACKATDAWN", "LEMONLEMONLE") + "<br>"); // шифруем
    document.write (cypher.vizhener.decryption ("en", "LEMONLEMONLE", "LXFOPVEFRNHR") + "<br>"); // расшифровываем
 
    document.write (cypher.vizhener.encryption ("ru", "водкаВнутриАСнаружиБутылка", "курицакурицакурицакурицакурица") + "<br>"); // шифруем
    document.write (cypher.vizhener.decryption ("ru", "курицакурицакурицакурицакурица", "мвфуцВшжгщяАЬбрщйжуФдыслху") + "<br>"); // расшифровываем
в принципе можно добавить какой нибудь еще язык в объект cypher.language (щас там есть русский/английский)

и потом в первом аргументе cypher.vizhener.encryption ("ТУТ", "_________", "_________") указывать...

Не по теме:

в бонус там еще шифр цезаря есть если чО :D

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2015, 11:49
Помогаю со студенческими работами здесь

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

Шифр Виженера
написать программу, реализующую алгоритм шифрования с помощью шифра Виженера с использованием русского алфавита

Шифр Виженера
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;sstream&gt; #include...

Шифр Виженера
У кого есть исходник на Си ?

Шифр Виженера
Здравствуйте! При написании данного кода в lazarus возникли трудности. Как сделать, чтобы я мог шифровать предложения, то есть чтобы пробел...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru