Git Product home page Git Product logo

Дело о секретной лаборатории

Введение

Полиция города Санкт-Петербург накрыла лабораторию по производству сомнительного кода на языке Kotlin.
Удалось задержать непосредственных guano-кодеров, они были направлены на общественные работы - предсказывать исходы хоккейных матчей по полёту птиц.

К сожалению, главный организатор лаборатории так и не был пойман. Пытаясь выйти на его след, стражи закона проанализировали изъятое оборудование и нашли несколько подозрительных директорий на диске. Используя свою интуицию и всю доступную убедительность при общении с рядовыми работниками ликвидированной лаборатории, полицейские смогли выяснить, что подозрительные директории являются некими кустарным шифром главного злодея. Для некоторых директорий даже удалось выяснить, исходные сообщения - они находятся в файлах sampleN.N.tgz - см. тесты. Также один из рядовых работников ликвидированной лаборатории успел рассказать основную идею алгоритма шифрования. Однако потом внезапно у него заболело горло, и он не смог рассказать весь алгоритм.

Вам необходимо расшифровать зашифрованные записи. Есть основания полагать, что данные об основателе лаборатории зашифрованы в secret.tgz! Реализуйте алгоритм дешифрования и шифрования в классах DecodeStream и EncodeStream соответственно. Используйте тесты для проверки, при необходимости пишите свои.

Стенограмма допроса относительно алгоритма шифрования

... Кхе-кхе-кхе... Похоже дни мои сочтены... Дайте ещё мороженого и я всё расскажу! О, вы так добры! Что ж, он очень хитёр и не доверяет корпорациям, поэтому он придумал свой код... кхе-кхе-кхе... Все данные записывались в файлы случайной длины в случайных поддиректориях одной директории... Важно правильно их обойти. Как?! В каждой директории по алфавиту, сначала все директории, в глубину, потом уже файлы... Но важны только файлы, в директориях ничего не спрятано... Мороженого, ещё мороженого! Вот так, хорошо... кхе-кхе-кхе... Всё зашифровано паролем, не сложно, наверно простой XOR, не это главное! Он просто гений, но он очень боялся, боялся забыть пароль... он был очень хитёр! Так что пароль хранится там же, в файлах, в первых файлах... Но не в них самих, а во времени их последнего изменения... Стоит только поменять файл - и всё пропало! Кхе-кхе-кхе... Вам никогда его не поймать, он - чёртов гений! Помяните моё слово... Уберите руки! Не надо быть такими убедительными, я расскажу! Кхе-кхе-кхе... Ещё мороженого, умоляю! Да, последняя цифра в секундах создания! Он любил цифры... Кроме цифры 0, она вгоняла его уныние, потому что напоминала о пустоте... Все его пароли были только из любимых цифр. Кхе-кхе-кхе... Вот так по одной цифре в файле, файл за файлом он и прятал свои пароли... Но только пока идут любимые цифры... Это было просто невероятно! Вам никогда его не поймать! ... О, как же болит горло от вашего мороженого! Глупцы, больше вы ничего от меня не услышите! ....

(После этого подозреваемый не смог ничего сказать и был увезён в больницу)

Nikolai Chukhin's Projects

Nikolai Chukhin doesn’t have any public repositories yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.