От: Encryption Co.
Кому: x $ * sj4 (это вы)
Ваша миссия, если вы решите принять ее, состоит в том, чтобы создать программу за кратчайшее количество нажатий клавиш, чтобы
Принимает два параметра имени файла (командная строка или стандартный ввод), первый - это файл, содержащий ключ, а второй - какое-то сообщение. Оба файла будут в виде обычного текста.
Применяет ключ к сообщению с помощью шифрования XOR, перезаписывая файл.
Пример:
Входной файл:
StackOverflow - это круто
Ключ:
Код Гольф
Шестнадцатеричный дамп зашифрованного выходного файла:
0000000: 101b 0506 4b08 1909 1425 030b 1200 2e1c ....K....%......
0000010: 4c25 2c00 080d 0a L%,....
Для простоты предположим, что файлы могут уместиться в памяти.
Это сообщение будет автоматически зашифровано в 5 ... 4 ... 3 ... 2 ... 1 ...
#####
#### _\_ ________
##=-[.].]| \ \
#( _\ | |------|
# __| | ||||||||
\ _/ | ||||||||
.--'--'-. | | ____ |
/ __ `|__|[o__o]|
_(____nm_______ /____\____
Шифрование XOR невозможно взломать, если размер ключа больше или равен размеру сообщения, а ключ генерируется беспристрастным случайным процессом. См. Одноразовый блокнот. Так что здесь нет "плохого шифрования".
\r\n
. Так что, вероятно, ошибка в реализации OP :) - person Thomas   schedule 14.08.2010