bsp;许毅很顺利地看到了第二关网页的源代码,大致浏览了一下,发现了一段比较可疑的编码,许毅推断过关密码应该隐藏在其中。
这段编码内容为:“%b9%a7%cf%b2%b9%fd%b9%d8%a3%a1%b1%be%b9%d8%c3%dc%c2%eb%ca%c7%45%32”
第二关还有点难度,许毅呵呵一笑。看到这个段奇怪的编码他就知道怎么破解了。看这它们的形式,很显然是url编码,也就是网址转换的时候的编码。在上网的时候,经常可以看到这样的编码,是浏览器用来打包表格输入的一种格式,这种情形在用搜索引擎搜东西的时候最常见,搜索的内容通常都会转换成这种形式呈现在浏览器的地址栏中(至于为什么要这样以后再解释)。
url编码其实就是字符ascii码(美国国家信息交换标准代码)的十六进制,不过稍微有些变动,需要在前面加上“%”。比如反斜杠“\”,它的ascii码是92,而92的十六进制是5c,所以它的url编码就是%5c。汉字的编码也是同样的原理,如“胡”的ascii码是17670,十六进制码是bafa,则它的url编码是“%ba%fa”,由于一个汉字占两个字节,所以中间多了个“%”。
平时通常用不上url编码,因为ie会自动将输入到地址栏的非数字字母转换为url编码,只有程序员在编写某些相关功能的程序的时候才需要用到其中的原理,当然,身为一个黑客,这个编码是需要掌握的,有些入侵行为就需要用到这个知识(如:sql注入)。
这点小知识许毅早就掌握得滚瓜烂熟,他干脆调出编译器,当场编写了一个url编码转换器,反正知道原理,编写起来不用花多少时间,而且,以后也用得上。
将那段编码复制到自己刚刚编写的小程序中,转换成了几个汉字:“恭喜过关!本关密码是e2”。
许毅微笑起来,虽然题目没什么难度,但这样过关的感觉还是不错,第二关的难度明显比第一关要大上很多,估计会难倒一片菜鸟。第三关的难度怎样呢?许毅还真有点期待了,希望能够让自己头痛一下,最近正在研究密码学呢。
填入第二关的密码,顺利进入第三关。步骤有些大同小异,还是得查看源代码,不过这次的源代码看上去比较混乱,不像前两关那样,一眼看去,就能发现密码大概在某个部位。第三关的页面里面有很多用来干扰的代码,主要是一些脚本代码。这就要求闯关者对网页编程比较熟悉,能够读懂这些代码,至少应该知道那些代码应该会完成哪些功能,哪些代码有用,而哪些代码只是起干扰作用。
许毅很快找到了目标,在验证的时候出现了一段密文,许毅一看,知道用的是jscript.encode加密,只要用相应的解密功能就能搞定,这对别人来说也许是个难题,但许毅自然能够轻易搞定,他很顺利地进入第四关,他想看看到底有多少关,并且想早一点看到最后一关。
---
黑客网站一般都有类似的游戏,下章我放个地址出来,大家去试试。