Функционирует при финансовой поддержке Федерального агентства по печати и массовым коммуникациям (Роспечать)

Full Java Throttle

Пройди невиданный квест от N + 1 на логику и знание Java

Есть древняя легенда, которую пересказывают до сих пор, — о несметных богатствах, надежно спрятанных от посторонних глаз. Говорят, что добраться до этих богатств сможет лишь тот, кто владеет могучими знаниями (Java). Археологи N + 1 при поддержке Газпромбанка потратили тысячи (если в двоичном виде) дней на поиск ответов. На 10101-й день нам пришла телеграмма, которая гласила: «ключ разбит на части». По древним петроглифам мы воссоздали испытание, которое должно помочь собрать ключ. Мы верим, что избранный — один из вас. Собери ключ и найди сокровище (и, быть может, тебя возьмут на работу в Газпромбанк)

Наш путь начался в Москве, команда археологов искала любые зацепки. В древних каббалистических книгах за пятый класс мы нашли несколько загадок, каждая из которых была отмечена знаком тайного общества.

Этот этап казался простым, но потребовал максимальной отдачи. Было ощущение, что все эти знаки пригодятся нам позже.

Мы решили продолжить поиски в пещере денисовского человека и отправили на Алтай нашего агента. Не то что бы эта поездка была необходима, но стоит приступить к поискам тайного общества, и остановиться уже трудно.

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

Тщательно исследовав и задокументировав смертельно опасные для неподготовленного человека способы обработки ошибок, наш программист воссоздал эту необычную систему.

Как думаете, у вас получится подобрать этот пароль?

Алтай — не конечная цель пути, впереди еще много неизведанного. Вот, к примеру, одна из находок, которую сопровождал символ общества: странные петроглифы на одной из стен в дождливом Петербурге. К сожалению, часть надписи смыло дождем.

        import java.util.stream.Collectors;



public class Key {

public static void main(String[] args) {
String inputString = "████████████████████████████████████████████████████████████████";
if (args.length > 0) {
inputString= args[0];
}
String result = handleString(inputString);
System.out.println(result);
}

private static String handleString(String inputString) {
if (inputString.chars().anyMatch(number -> number == 33)) {
return inputString;
}
return handleString(inputString.chars()
.map(number -> --number)
.collect(StringBuilder::new, (buf, c) -> buf.append((char) c), StringBuilder::append)
.toString());
}
}

Отчаявшись, наша команда решилась на экспедицию по улице Рубинштейна, но вдруг археолог Егор обратил внимание на высеченные в камне древние знаки, сопровождавшиеся все тем же символом. Это не могло быть простым совпадением.

root@secret-union # java -jar Key.jar
:j@Z+VV3l\^?"D7+aE&^@d@XI:l8klT_&%ab"a!AbBD"5@Ehk+];I!^l66Dc$Igj

Может быть, вы попробуете выяснить, какие символы были уничтожены питерским дождем?

Похоже, что все части ключа теперь у вас! Вот сам ключ. Необходимо заполнить недостающие части.


-----BEGIN RSA PRIVATE KEY-----

MIIEpgIBAAKCAQEAvwv9NkD/EBGlzXzVb1VwKhpYqTzeZA8FVVS8W8dS0XkkNZC1
76Zf4DdZxHIHN4taru54z/8KFpvV9P4AI/ceXKm+kv███████CIbyDHrzeElSSKE
Sc0N1eItIFSNPrJVtz2u80MY9Dtl1Nj4NiVDxGzHJSMNteBaLukT36Pp+JcwQirh
mO/li7Hw8DOUniNKpM/bNsj4+q2e5cDrgPi/HSAzQaqjcdBdUTx7fdpjiSOWcsMk
ue8KhpO33VRvluH6W4THDCDNVEZ/5i8jeeVQMDjjFLzWl+ZEsB0jGs7Ei7qfzynJ
VPAHO746aJWpEzd9uuyWf1jwBTu8/iPexr/lIQIDAQABAoIBAQCbyqgTTQ9ySCHg
████████████████████████████████████████████████████████████████
nEv7CDLfN6Dr7Czh6zVo6q+jImp7ekVQjXA5SpkkuIs6GRkRbpYNlqSLRUUdLS7O
Upyecub/UAFZ3Gr6zNhd9r25Gs7aYu7KXGFBVP1EmxPY+T0j88ICECevX39vzRmE
u28q+Vc7zF/Ep7ES/vcTUsWEu6qhCgOJcwy3kx/xytHuixWvli6sttYUgAydkOyi
2bJPQ0dKE80qUmFRTtdOrazu3hWi1D7UCQH1Fsj2MoxHemYsXsQtxvead40+x314
6Eka74w9AoGBAOk3SjhPPjmuYWf76tDLWRGnWGYxX5oVA1GaJ0sGwN8+oYncqh9e
g1kbAq+NL96XsKqZfXWf+64lQm94s8KKxCO██████CLo56RL4Sb+ZeD27ePzS9rf
Xo4CRg4ww9U29VH+tqfawLNR38eLkV8VApQyMLCQq3AuT9uMEIGGTubjAoGBANG2
DYNnaTP891v/mSD1FoBMEUKtzb1X1MPcpp9+VJ+86Hpq2nbZ7dS+rcCoKVdynfVB
HXScUyz92KxEFovM67Vo9YJmO7ZYDJ1hOT6AHhJv176SvECtMOr8Kftdoj0r5tdo
9FwG3jdHMqIfcraXctxR/c8OqmWQYM1eQVIm4f8rAoGBAJalrn3dQlbEPAuNgUtK
b8iljsbEkfrYJAKsT0F5pVEQBg0ly4bj6HjAp+V6kDd7SRWKfK5kn5EIZHfZQlUi
ijxwoDXVR2k1hZxtn40uu+Sr3VNoL9G8hDm7YkF8YqPyElna7WZUOjIbazBdCZSf
38CXAziq2vNmFxO80FS6y3D9AoGBAJ+FWGooc4I0XwUAPL8xL9iQBGEwTFxHP3Vt
luGj+0M3M7BLL7tQsvUtxoXSZQA8E6PH0FwvvaVvwy3m7S+SxYnNOVPj6HAgMhhV
KHI+iqGDqh0xCTo5hAh7oIOxCgR2LLaXA6otH0P1SLLCMURrl9e4FtU2Vq/DT59o
n0+afDbZAoGBAOTBjM5PzRJsP9wT0fY2IGVofSTlio5akB4eZadXaIbHnH1kf/Hx
nlESmIxxvMQLB3tjemEjBXQODaOwS/e/EfzAU8lEJ29PpxIA2yabPEPUDuuWxxNe
LGJ+dPx1V59r9SMMT1HZgg5O0terHUsJCtk2aVql/XqmXCSF/risypl9
-----END RSA PRIVATE KEY-----

А вот дверь, которую он открывает. Вы знаете, что делать!


INOaR61jucHJRLIUddpdar90ILP8dkm3IjN9kz9C1tKtTm3iFzeBkxSoB8OWRD8FRBkkGUzyoyfK

GCFTSfrZWmUwmoZAvMmLCRok0p0rAURTm4Yflgh/6A/PK1dU1oDpT1IqZCQS+hexniSBddDk7aWZ
ebfdfs7UHxb11tGVq+86EVt45JstS6xqalsIxvtI4pveL4cmWqkPylFXlQ5Q0BiipjJiYhbe7J3O
3zBKOamIhaWXXEibSIqtR9TykEGtbncM3HB3oblR9c2ZAAiZMV5uDFQ/H+VIgyP/Js6O/WugRhH8
3KlxFNzu3WeFl7IjViw314vqnp4I391AL5H9pA==

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.