Допустим, у вас есть какой-то текст, и вы хотите, чтобы он отправил его вашему другу, но вы не хотите, чтобы кто-то еще его читал. Это, вероятно, означает, что вы хотите зашифровать его, чтобы его могли прочитать только вы и ваш друг. Но есть проблема: вы и ваш друг забыли согласовать метод шифрования, поэтому, если вы отправите им сообщение, они не смогут его расшифровать!
Подумав об этом некоторое время, вы решили просто отправить другу код для шифрования вашего сообщения вместе с сообщением. Ваш друг очень умен, поэтому он может выяснить, как расшифровать сообщение, изучив метод шифрования.
Конечно, поскольку другие люди могут читать сообщение, вы хотите выбрать схему шифрования, которая сделает его максимально трудным для взлома (выясните схему дешифрования).
Задача ментов
В этом вызове копы будут играть роль автора: вы разработаете схему шифрования, которая преобразует строки в строки. Однако эта схема шифрования должна быть биективной , это означает, что никакие две строки не должны отображаться на другую строку, и каждая строка может быть сопоставлена с помощью ввода. Требуется только один вход - строка для кодирования.
Затем вы опубликуете некоторый код, который выполняет шифрование, и одно сообщение, зашифрованное по схеме, детализированной вашим кодом.
Поскольку вы платите байтом за отправку сообщений, вашим счетом будет длина вашего кода плюс длина зашифрованного текста . Если ваш ответ взломан, у вас будет оценка бесконечности.
Через неделю вы можете раскрыть текст и пометить свой ответ как безопасный . Безопасные ответы - это те, которые невозможно взломать.
Задача грабителей
Грабители будут играть либо за друга писателя, либо за злого посредника (между ними нет существенной разницы, но вы можете сыграть роль так же, как если бы это делало это более увлекательным). Они возьмут схемы шифрования и зашифрованный текст и попытаются выяснить зашифрованное сообщение. Как только они выяснят зашифрованное сообщение, они опубликуют его в комментарии. (Для этого вопроса не будет отдельной ветки грабителей.)
Победителем станет грабитель с наибольшим количеством трещин.
Вот пример того, как может выглядеть взломанное решение:
источник
Ответы:
Желе , 57 + 32 = 89 байт ( трещины )
Зашифрованное сообщение:
В виде шестнадцатеричной строки:
Объяснение:
Где
N
кодируется строка“¡ḟċ⁷Ḣṡ⁵ĊnɠñḂƇLƒg⁺QfȥẒṾ⁹+=?JṚWġ%Aȧ’
, которая является номером105587021056759938494595233483151378724567978408381355454441180598980268016731
.Также это метод RSA с
N
указанным выше и открытым ключом21
. Взлом это эквивалентно нахождению двух основных факторовN
.источник
_ìNb
( попробуйте онлайн! ).Желе , 88 + 64 = 152 байта
Функция шифрования:
Зашифрованное сообщение:
В виде шестнадцатеричной строки:
Объяснение:
Где
N
кодируется строкой:какой номер
Также это метод RSA с
N
указанным выше и открытым ключом13
. Взлом это эквивалентно нахождению двух основных факторовN
, который имеет 512 бит.источник
JavaScript (ES6), 43 + 33 = 76 байт. Автор: Leaky Nun
Функция шифрования, 43 байта:
Зашифрованное сообщение, 33 байта:
Примечание: этот метод шифрования зависит от браузера.
источник
T! a)o khas eotrto-c; o sa cwsaoy
That was soooo easy to crack! -;)
(Я использовал Firefox, чтобы взломать его)Braingolf, треснувший
Попробуйте онлайн!
Зашифрованное сообщение, 45 байт (UTF-8)
Гекскоды зашифрованного сообщения
Расшифрованное сообщение
объяснение
дешифратор
Декодер можно сделать, изменив только 3 символа. Просто удалите
1
и вставьте$_
между ними&,
и&g
источник
C'mon, this one's *easy*!
g
недокументировано?JavaScript (ES6), 96 + 9 = 105 байт
Зашифрованный текст (в шестнадцатеричном формате):
7d111c74b99faff76a
Попробуйте онлайн!
Примеры выходных данных (с использованием двигателя V8):
abc123 -> db48ea4f86b9
Здравствуйте -> 1b3420f5ab
источник
76
.