SpyFall

Поиграем в шпионов? В архиве, который вы получите, содержатся две картинки. Одна - оригинальная, найденная на просторах интернета. Вторая - которая используется секретным агентом для передачи сообщения. Ваша задача - получить секретный код, вшитый в картинку.

К счастью, нам удалось узнать алгоритм, используемый для шифрования сообщения. Сообщение представляет собой черно-белую картинку размером 600x400. Каждый пиксель картинки, очевидно, кодируется числом от 0 до 255, где 0 - абсолютно черный пиксель, 255 - абсолютно белый. Таким образом мы получаем 600х400 = 240 000 пикселей, от левого верхнего к правому нижнему. Далее, этот массив пикселей мы кодируем с помощью XOR-шифрования с использованием ключа длиной 417 символов, который нам тоже удалось перехватить (подсказка: используйте .charCodeAt(index) для получения кода символа в ключе). Полученное число, допустим 179, разбивается на 3 группы по следующему алгоритму:

| 1  0||1  1  0||0  1  1| = 179
|--r--||---g---||---b---|

Далее, берутся значения красного, зеленого и синего каналов для соответствующего пикселя картинки. Эти значения складываются со значениями группы R, G и B из предыдущего шага. Допустим, исходный пиксель имел значение красного канала в 8, зеленого - 150 и синего - 105. После проведения операции мы получим:

Мы заменяем исходный пиксель картинки пикселем с новыми значениям RGB (10, 156, 108)

Задача

Загрузите архив и реализуйте в файле index.html восстановление зашифрованной картинки

Форма регистрации