03.04.2016, 12:52
|
Новичок на форуме
|
|
Регистрация: 03.04.2016
Сообщений: 2
|
|
шифр Бэкона. Помогите пожалуйста!
Помогите написать шифр Бэкона на JavaScript, пожалуйста!!!Буду очень благодарна!
|
|
03.04.2016, 13:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
Дарья87,
вы начните
|
|
03.04.2016, 13:33
|
Новичок на форуме
|
|
Регистрация: 03.04.2016
Сообщений: 2
|
|
начала, не очень получается( поэтому и прошу помощи.
|
|
03.04.2016, 14:05
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
Дарья87,
где код?
|
|
03.04.2016, 14:33
|
Аспирант
|
|
Регистрация: 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.
|
|
03.04.2016, 15:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
Дарья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>
|
|
03.04.2016, 15:26
|
Аспирант
|
|
Регистрация: 02.04.2016
Сообщений: 50
|
|
рони,
строго говоря, Вы не реализовали шифр Бэкона:
Цитата:
|
Берётся секретное сообщение.
Выбирается метод кодирования (то есть закон, по которому каждой букве алфавита будет ставится в соответствие определённый набор символов) и зашифровывается сообщение.
Выбирается способ сокрытия сообщения (то есть правило, по которому символам зашифрованного сообщения ставится в соответствие другие буквы или слова алфавита) и получается конечный текст.
|
то есть, проще говоря, в каждой шифровке должен быть свой ключ
далее, это скрытое сообщение, должно быть еще раз закодировано, чтобы шифр выглядел как обычный текст. Это не особо тривиальная задача, я сам лоханулся, недочитал . Но мой вариант, по крайней мере, делает первые 2 шага. Третий шаг реализовать очень трудно, если мы хотим еще добиться того, чтобы текст выглядел осмысленным
Последний раз редактировалось protoquest, 03.04.2016 в 15:37.
|
|
03.04.2016, 16:07
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
Сообщение от protoquest
|
строго говоря, Вы не реализовали шифр Бэкона:
|
абалдеть!!!
внизу результат шифрования с помощью функций предложенных выше
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<body>
<h1>Текст до шифрования</h1>
<p class="from">В лесу родилась елочка,
В лесу она росла,
Зимой и летом стройная,
Зеленая была.
Метель ей пела песенку:
«Спи, елочка, бай-бай!»
Мороз снежком укутывал:
«Смотри, не замерзай!»
Трусишка-зайка серенький
Под елочкой скакал,
Порою волк, сердитый волк,
Рысцою пробегал.
Чу! Снег по лесу частому
Под полозом скрипит;
Лошадка мохноногая
Торопится, бежит.
Везет лошадка дровенки,
А в дровнях — мужичок,
Срубил он нашу елочку
Под самый корешок.
Теперь она, нарядная,
На праздник к нам пришла
И много, много радостей
Детишкам принесла.
</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>
|
|
03.04.2016, 16:15
|
Аспирант
|
|
Регистрация: 02.04.2016
Сообщений: 50
|
|
рони,
Не заставляйте окружающих думать, что Вы умственно неполноценный, я уверен, что Вы сможете осилить смысл предыдущего сообщения, если постараетесь. То что Вы накалякали -- это всего лишь трансляция туда-сюда, Вы даже ключ не генерируете (п2)
Последний раз редактировалось protoquest, 03.04.2016 в 16:19.
|
|
03.04.2016, 16:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
protoquest,
увы то что ты пишешь мне не подвласно мне далеко до твоего уровня программирования, да и большинства профи этого форума.
|
|
|
|