Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2016, 12:52
Новичок на форуме
Отправить личное сообщение для Дарья87 Посмотреть профиль Найти все сообщения от Дарья87
 
Регистрация: 03.04.2016
Сообщений: 2

шифр Бэкона. Помогите пожалуйста!
Помогите написать шифр Бэкона на JavaScript, пожалуйста!!!Буду очень благодарна!
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2016, 13:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Дарья87,
вы начните
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2016, 13:33
Новичок на форуме
Отправить личное сообщение для Дарья87 Посмотреть профиль Найти все сообщения от Дарья87
 
Регистрация: 03.04.2016
Сообщений: 2

начала, не очень получается( поэтому и прошу помощи.
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2016, 14:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Дарья87,
где код?
Ответить с цитированием
  #5 (permalink)  
Старый 03.04.2016, 14:33
Аспирант
Посмотреть профиль Найти все сообщения от protoquest
 
Регистрация: 02.04.2016
Сообщений: 50

Дарья87,
насколько я понял, это простейший кодировщик
Сообщение от Дарья87
начала, не очень получается( поэтому и прошу помощи.
начните с того, что сгенерируйте таблицу кодировки, например
alphabet = "abcdefghijklmnopqrstuvwxyz ".split("")
table = {}

randomSymbol = function(){
  return Math.random() >= 0.5 ? "a" : "b"
}

randomInteger = function(){
  return Math.floor( 1 + Math.random() * 8)
}

generateCode = function(){
  var code = ""
  var counter = randomInteger()
  while(counter--){
    code += randomSymbol()
  }
  if(code in table) return generateCode()
  return code
}

generateTable = function(){
   alphabet.forEach(function(sym){
      table[generateCode()] = sym
   })
}

generateTable()
console.log(table)

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

UPD не, не дочитал, облажался. Это НЕ простое кодирование. Так мы делаем только 2 шага, третий там архисложен, никто тут скорей всего бесплатно это делать не будет

Последний раз редактировалось protoquest, 03.04.2016 в 16:36.
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2016, 15:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Дарья87,
без коментариев ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
 </head>

<body>
<script>
function crypt(message) {
    var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
    message = message.split("");
    return message.reduce(function(message, current) {
        var i = a.indexOf(current);
        i = "00000" + i.toString(2);
        i = i.slice(-5);
        i = i.replace(/\d/g, function(a) {
            return ["A", "B"][a]
        });
        return message + i
    }, "")
}

function decrypt(message) {
    var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
    message = message.match(/.{5}/g);
    return message.reduce(function(message, current) {
        current = current.replace(/./g, function(a) {
            return {
                "A": "0",
                "B": "1"
            }[a]
        });
        current = parseInt(current, 2);
        return message + a[current]
    }, "")
};
document.write(crypt("RAMMSTEIN")+"<br>")
document.write(decrypt("BAAABAAAAAABBAAABBAABAABABAABBAABAAABAAAABBAB")+"<br>")
</script>
</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 03.04.2016, 15:26
Аспирант
Посмотреть профиль Найти все сообщения от protoquest
 
Регистрация: 02.04.2016
Сообщений: 50

рони,
строго говоря, Вы не реализовали шифр Бэкона:
Цитата:
Берётся секретное сообщение.
Выбирается метод кодирования (то есть закон, по которому каждой букве алфавита будет ставится в соответствие определённый набор символов) и зашифровывается сообщение.
Выбирается способ сокрытия сообщения (то есть правило, по которому символам зашифрованного сообщения ставится в соответствие другие буквы или слова алфавита) и получается конечный текст.
то есть, проще говоря, в каждой шифровке должен быть свой ключ
далее, это скрытое сообщение, должно быть еще раз закодировано, чтобы шифр выглядел как обычный текст. Это не особо тривиальная задача, я сам лоханулся, недочитал. Но мой вариант, по крайней мере, делает первые 2 шага. Третий шаг реализовать очень трудно, если мы хотим еще добиться того, чтобы текст выглядел осмысленным

Последний раз редактировалось protoquest, 03.04.2016 в 15:37.
Ответить с цитированием
  #8 (permalink)  
Старый 03.04.2016, 16:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от protoquest
строго говоря, Вы не реализовали шифр Бэкона:
абалдеть!!!
внизу результат шифрования с помощью функций предложенных выше
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<body>
<h1>Текст до шифрования</h1>
<p class="from">В лесу родилась елочка,
В лесу она росла,
Зимой и летом стройная,
Зеленая была.

Метель ей пела песенку:
«Спи, елочка, бай-бай!»
Мороз снежком укутывал:
«Смотри, не замерзай!»

Трусишка-зайка серенький
 Под елочкой скакал,
Порою волк, сердитый волк,
Рысцою пробегал.

Чу! Снег по лесу частому
 Под полозом скрипит;
Лошадка мохноногая
 Торопится, бежит.

Везет лошадка дровенки,
А в дровнях &mdash; мужичок,
Срубил он нашу елочку
 Под самый корешок.

Теперь она, нарядная,
На праздник к нам пришла
 И много, много радостей
 Детишкам принесла.
</p>
<h1>Текст после шифрования</h1>
<p class="to"><i>В</i> <i>л</i><i>е</i>с<i>у</i> р<i>о</i>д<i>и</i><i>л</i>ась <i>е</i><i>л</i><i>о</i><i>ч</i><i>к</i>а,
В <i>л</i>есу <i>о</i>на <i>р</i><i>о</i><i>с</i>л<i>а</i>,
<i>З</i>им<i>о</i>й <i>и</i> л<i>е</i><i>т</i><i>о</i><i>м</i> <i>с</i>т<i>р</i><i>о</i><i>й</i><i>н</i><i>а</i>я,
<i>З</i><i>е</i><i>л</i><i>е</i>н<i>а</i>я <i>б</i><i>ы</i>л<i>а</i>
</p>
<h1>Зашифрованный текст</h1>
<p class="mes">БЕЗ КОМЕНТАРИЕВ</p>

</body>
</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 03.04.2016, 16:15
Аспирант
Посмотреть профиль Найти все сообщения от protoquest
 
Регистрация: 02.04.2016
Сообщений: 50

рони,
Не заставляйте окружающих думать, что Вы умственно неполноценный, я уверен, что Вы сможете осилить смысл предыдущего сообщения, если постараетесь. То что Вы накалякали -- это всего лишь трансляция туда-сюда, Вы даже ключ не генерируете (п2)

Последний раз редактировалось protoquest, 03.04.2016 в 16:19.
Ответить с цитированием
  #10 (permalink)  
Старый 03.04.2016, 16:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

protoquest,
увы то что ты пишешь мне не подвласно мне далеко до твоего уровня программирования, да и большинства профи этого форума.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слайдер - карусель блоков (помогите пожалуйста) Viktor.Poberezhniy Общие вопросы Javascript 3 22.07.2014 12:46
Помогите пожалуйста вычислить общую сумму katalizator Общие вопросы Javascript 15 22.03.2013 16:26
Пожалуйста помогите сделать проверку выполнения vk Dodik Общие вопросы Javascript 3 01.03.2013 16:49
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31
Помогите пожалуйста, очень срочно!!! PAMAC AJAX и COMET 1 20.10.2009 23:38