进入第四关许毅找了老半天实在是没找到哪个地方是突破口源代码是检查了一遍又一遍正怀疑线索可能并不在源代码中的时候他终于现了奇怪之处。
在源代码中有这么一句:
&1t;sbsp;sRc=”Javascript”>&1t;/sbsp;疑点就在这里了这段代码看上去好像没什么问题可是却没什么具体的作用。通常情况下脚本代码都是夹在&1t;scRIpT>和&1t;/scRIpT>之间的但这个其中却没有任何代码。这还不是主要的关键在于如果网页脚本语言要使用Javascript语言的话正确格式应该为:
&1t;sbsp;Language=”Javascript”>&1t;/sbsp;或者将脚本独立出来直接放到另外一个文件中然后进行引用。则语法为:
&1t;sbsp;sRc=”文件名”>&1t;/sbsp;也就是说上面那个是引用了一个文件了而文件名正好是Javascript出题者这么出正好是利用它们之间的相似之处如果对这两个概念不清楚还真不能现其中的疑点当然这么一句无关紧要的代码隐藏在大量代码中如果不细心也是现不了的。
许毅按照上面的地址将那个文件打开果然里面有东西准确的说里面是一句密文许毅知道自己找对了。
就这么一句密文不知道加密算法也是没有任何办法的。加密算法何其多任许毅如何厉害单凭一句密文也是不能破解的这个不比软件破解这只是一个过关密码也不能根据上下文来推断各种情况都是有可能的。
既然这是闯关游戏那肯定还有其他什么线索这点是可以肯定的。于是许毅又回到网页源代码上仔细起来在其中现了一小段和加密有关的代码不过这段代码实际上是没有起作用的并没有得到执行唯一的作用那就是干扰了。其中用的加密方式是base64加密许毅感觉到自己又一次抓住了过关的钥匙。
许毅再次查看了一下密文的特点更加肯定这正是用base64加密算法加密的密文了。
雅文吧
Base64是互联网上用的比较多的一种算法它是为了解决邮件传输中的加密和二进制数据(声音、图形图像等)传输问题而产生的。也就是说这个算法和邮件联系紧密几乎所有的电子邮件软件都把它作为默认的二进制编码它已经成了现今电子邮件编码的代名词。
它的主要思想是将输入的字符串或数据编码成只含有{‘a‘-‘Z‘‘a‘-‘z‘‘o‘-‘9‘‘+‘‘/‘}这64个可打印字符的串故称为“Base64”(基于64个字符)。它构造简单度快但安全性就一般了因为这是一种可逆的加密算法也就是说只要知道密文就可以将明文很轻易地恢复过来。
在php编程中里面就内置了这样的加密函数所以许毅很轻易地就将密文破解了得到了进入第五关的密码。
来到第五关的页面这次倒干脆直接给出了一个16位的密文另外还有一段提示说密码是6位纯数字。16位的密文许毅立刻就想到了md5加密再联系题目给出的提示许毅大致猜测自己的推断应该是不错了不然也不会给出这么一个提示。
看到这个许毅有些无奈了他估计这关卡也许就到顶了。因为md5加密算法是不可逆的许毅要想破解就只能是暴力破解了编写一个软件对6位数字进行穷举肯定可以将密文跑出来。