Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.8280
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 27.09.2012, 07:23   #1
WebNinja
grablab.org
 
Аватар для WebNinja
 
Регистрация: 18.09.2007
Адрес: Thailand
Сообщений: 4,921
Бабло: $322214
Отправить сообщение для WebNinja с помощью ICQ Отправить сообщение для WebNinja с помощью Skype™
По умолчанию [Кому делать нефиг] pythonchallenge

http://www.pythonchallenge.com/pc/def/0.html

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

предполагается что придется использовать консоль python или php-cli (вроде же?) или что-то другое, но как бы "на глаз" там дальше не решить ничего.

первая тривиальна. на картинке 2^32

Код:
>>> 2**38
274877906944
>>>
вбиваем в урл http://www.pythonchallenge.com/pc/def/274877906944.html и попадаем на следующюю

Цитата:
g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.
и на картинке такой шифр K->M O->Q E->G и подпись "everybody thinks twice before solving this".
хммм что бы это могло значить? немного подумал, что замена символов в строке просто по шифру очевидно не катит. значит может быть шифр просто задет смещение?

Код:
>>> ord('E')
69
>>> ord('G')
71
>>> ord('O')
79
>>> ord('Q')
81
ага так и есть. алфавит просто смещен на 81-79 = 2 символа

чтобы решить это можно накидать в той же консольке что-то вроде

Код:
>>> str = "эта строчка"
>>> ''.join([chr(ord(x) + 2) for x in str])
'i"hope"you"didnt"tr{nsl{te"it"|y"h{nd0"th{ts"wh{t"computers"{re"for0"doing"it"in"|y"h{nd"is"inefficient"{nd"th{t)s"why"this"text"is"so"long0"using"string0m{ketr{ns*+"is"recommended0"now"{pply"on"the"url0"'
ну и все ясно короче. можно чутка допилить (не менять пробелы, скобки, заменить { -> a и т.д.) и получится примерно такое

Код:
>>> i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url.
выражают надежду что перевод был выполнен не с брутальной прямолинейностью - руками, а используя компьютер. и предлагают применить это правило к урлу используя string.maketrans.

Код:
>>> ''.join([chr(ord(x) + 2) for x in 'map'])
'ocr'
http://www.pythonchallenge.com/pc/def/ocr.html

тут сразу предлагают посмотреть в исходник страницы и там будет куча символов и подсказка - найти самые редкие (find rare characters in the mess below

зафигачив в переменную str весь этот текст и набросав пару строк получил :

Код:
>>> sym = {}
>>> for i in str:
...     if i in sym:
...         sym[i] += 1
...     else:
...         sym[i] = 1
... 
>>> print sorted(sym.items(), key=lambda x: x[1])
[('a', 1), ('e', 1), ('i', 1), ('l', 1), ('q', 1), ('u', 1), ('t', 1), ('y', 1), ('\n', 1221), ('^', 6026), ('*', 6032), ('&', 6039), ('$', 6046), ('{', 6046), ('+', 6062), ('!', 6076), ('%', 6103), ('}', 6105), ('[', 6106), ('_', 6110), ('#', 6111), ('(', 6150), (']', 6150), ('@', 6155), (')', 6185)]
>>>
ага вообщем символы есть, но они не упорядочены как нужно, потому что {} - dict это не хранит данные в упорядоченном виде, только ключ, значение. значит нужно просто убрать все что встречается более одного раза.

Код:
>>> result = ''
>>> for i in str:
...     if sym[i] == 1:
...         result += i
... 
>>> print result
equality
>>>
http://www.pythonchallenge.com/pc/def/equality.html

а потом я заебался. короч можно продолжить

P.S. Наверняка есть солюшены в гугле, но нахуй надо, не уподобляйтесь "отличникам" по результатам ЕГЭ в северокавказских республиках.

Последний раз редактировалось WebNinja; 27.09.2012 в 07:29.
WebNinja вне форума  
Старый 27.09.2012, 12:44   #2
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,382
Бабло: $470735
По умолчанию

это для тех, у кого много свободного времени. имхо есть более эффективные способы прокачать скилы, а фана я тут не вижу.
лучше пойду практические упражнения по scala поделаю
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 27.09.2012, 13:01   #3
WebNinja
grablab.org
 
Аватар для WebNinja
 
Регистрация: 18.09.2007
Адрес: Thailand
Сообщений: 4,921
Бабло: $322214
ТС -->
Отправить сообщение для WebNinja с помощью ICQ Отправить сообщение для WebNinja с помощью Skype™
автор темы ТС По умолчанию

бля а я так надеялся на тебя или сэнди ))
да норм. тема там дальше интереснее.

я после ml наверное scala возьму.

Цитата:
site:www.pythonchallenge.com/pc/def
бля хаккеры )
WebNinja вне форума