2014年10月9日 星期四 晴
Level19 http://www.pythonchallenge.com/pc/hex/bin.html
map.jpg显示的是印度的地图(当然,我是不承认这张地图的,部分中国领土也被划分过去了),感觉地图颜色怪怪的,一般海洋才是蓝色的,这刚好反过来了。 有一封信,open the attachment, Content-type: audio/x-wav; name=“indian.wav”
[code]import base64 india64 = ‘’’****’’’ with open(‘india.wav’,‘wb’) as f: f.write(base64.decodestring(india64))[/code]
解码成一个男声,sorry。访问http://www.pythonchallenge.com/pc/hex/sorry.html 的话,直接告诉- “what are you apologizing for?"。 尝试像Level17那样通过cookie带话,没效果。 尝试给leopold.moz@pythonchallenge.com发email,标题是sorry,回复如下:
Never mind that. Have you found my broken zip? md5: bbb8b499a0eef99b52c7f13f4e78c24b Can you believe what one mistake can lead to?
不知所云,访问http://www.pythonchallenge.com/pc/hex/broken.zip 是404。
事情没有那么简单和顺利的,如果太简单就不是challenge了。
再看看作者说的话,It is so much easier for you, youngsters. Maybe my computer is out of order. 重要的是order,数据还是这个数据,最主要是order。
之前是图片要变化处理,看来这个wav也要变化order处理一下了。是什么order呢?用UE打开wav来看,看了半天没看出什么头绪。搜一下python有没有处理wav的库,找到参考https://docs.python.org/2/library/wave.html ,http://cfa.everpcpc.com/scipy-doc/wave_pyaudio.html 。
WAV是Microsoft开发的一种声音文件格式,虽然它支持多种压缩格式,不过它通常被用来保存未压缩的声音数据(PCM脉冲编码调制)。WAV有三个重要的参数:声道数、取样频率和量化位数。 声道数:可以是单声道或者是双声道 采样频率:一秒内对声音信号的采集次数,常用的有8kHz, 16kHz, 32kHz, 48kHz, 11.025kHz, 22.05kHz, 44.1kHz 量化位数:用多少bit表达一次采样所采集的数据,通常有8bit、16bit、24bit和32bit等几种
[code]
def Challenge18c(): import wave w = wave.open(‘india.wav’) ch = w.getnchannels() sw = w.getsampwidth() f = w.getframerate() nf = w.getnframes()
读取波形数据
wave_data = w.readframes(nf)[/code]
我在想作者不会变态到要画wav波形出来吧,他不可能控制把波形到那么巧。不过声音是可以有合成的,尝试拆成两个wav试试看看。 [code] def Challenge18c(): import wave w = wave.open(‘india.wav’) ch = w.getnchannels() sw = w.getsampwidth() f = w.getframerate() nf = w.getnframes() wave_data = w.readframes(nf)
w2 = wave.open(‘india2.wav’,‘w’) w2.setnchannels(ch) w2.setsampwidth(sw) w2.setframerate(f // 2) w2.writeframes(wave_data[0::2]) w2.close()
w3 = wave.open(‘india3.wav’,‘w’) w3.setnchannels(ch) w3.setsampwidth(sw) w3.setframerate(f // 2) w3.writeframes(wave_data[1::2]) w3.close()[/code]
india.wav听起来跟india.wav是一样的,india2.wav听起来是idiot。 访问http://www.pythonchallenge.com/pc/hex/idiot.html,出现莫扎特他爸的头像,说"Now you should apologize…",点击进入下一关,http://www.pythonchallenge.com/pc/hex/idiot2.html。
...