果应该是true或fa1se?
天玄说:喂太瞧不起我了吧?谁都知道1=1啊!这结果当然是true!
云飞点头说:看来你还有点救!接下来在判断式中假设用户名为pau1而密码为qq则判断式的成立应该是当if用户名==‘pau1‘以及if密码==‘qq‘对吧?因为在sql语法中单引号内括字元字串。
天玄开始了解而说:这样讲我当然明白!可是和or1=1又有何关联?
云飞便说:你看!假如我们输入if用户名==‘pau1‘这里改成if用户名==‘xxx‘本来应该是错误的因为没有xxx这个用户名在!可是若输入‘or1=1‘变成if用户名==‘xxx‘or1=1‘‘时因为有一个或运算or在就算没有用户名但判断到或1=1时却会通过!我们知道and要两者都成立而or只要其中一个成立所以在某些情况下会通过检查。而若反过来输入数据被放在==之前则可以输入1=1or来变成if1=1or‘xxx‘==‘pau1‘同样判断到1=1就会通过了。
天玄拍手恍然大悟道:天呀!真是高招!我终于开窍了!
宇成也了解道:原来如此这就是所谓的sql隐码啊!果然很危险!
云飞却摇摇头说:不然这并非是绝对的好方法!这次之所以能成功是因为写这个网页的人疏忽漏掉很多东西比如过滤掉单引号!如果对方的程式写了过滤单引号的程式加以检查这方法就不会成功了。而且刚刚所讲的只是基本的理论实际使用上要视不同网页程式写法尝试各种sql语法。
天玄拼命点头说:是!是!好这样我就知道要怎么跟小红说了!
云飞转头看著宇成说:怎么样?你还是对这些东西很有兴趣对吧?
宇成不愿正面回答便说:我只是想到信息安全的重要性罢了!毕竟如果这么简单就可以攻击的话那我们的数据存在网路上一点也不安全!
天玄被激励而说:宇成你在胡说什么啊?网路本来就是一个公开的地方既然有心要把数据放在上面当然就没有绝对的安全啊!所以被入侵是自己的防护不够周全的关系。你想想不锁好门而被偷东西该怪谁?
宇成心中突然又闪过一道光心想:是这样子吗?没有锁好门的人也有错吗?
云飞喝了口水说:那么接下来是编码的问题吧?
天玄又拼命点头的说:对拜托你了云飞大大不级大大大!
云飞说:你听好了所谓的编码就是将数据编辑成一连串的二进位码而加密则是不以直接的方式解码必需要用特殊的规则或演算法去解出来。
天玄点点头说:喔~是这样子啊?不过我还是不懂可以说得更俱体一点吗?
云飞便在屏幕上打了几个字:b746、a741、a6d1、a5bsp;
天玄疑惑的问:这个...这个是什么意思啊?
云飞邪笑著说:你用内码输入法在姓名栏输入那四组字码就知道了哼!
天玄好奇的打上去却现是一句不勘入目的话甚是生气的说:太过份啦!
宇成捧腹大笑道:哈哈哈!天玄..噗..被摆了一道喔!
云飞转身打字说:好了没时间让你当小丑了得快点让你明白才可以。
天玄气愤的骂道:喂!这到底是谁造成的啊?
云飞说:你看以b746这个字码为例解析成二进位后会变什么?
天玄拿出笔算后说:是1o11o111o1ooo11o啊!
云飞便说:假如我们把它的编码往左移两位就成了11o111o1ooo11o1o对吧?最左边的两位1o因为左移所以会跑到最右边去。此时再组合回十六进位就会变成dd1a这个码和原先的b746不同了对吧?但只要右移又恢复了!
天玄点头说:我懂了我懂了!只要事先制定一套规则演算法就可以让字码在网路上传递时属于被修改过的方式保护数据传递中的安全性。而收到的人如果不懂得演算规则他就没有办法还原回原来的数据了!
云飞又说:但是只有简单的位移还是容易被看出来。所以演算的方式往往要依赖一些公式去计算!b746二进位码中有1的位元是15,13,12,1o,9,8,6,2,1。(二进位码的位元位置编号为15,14,13,12,11,1o,9,8,7,6,5,4,3,2,1,o)
云飞换个画面接著说:假如不在乎文件大小可以编码成9fdca98621其中前面的9代表读取下面几组位元而fdca98621代表第几个位元为1。因为是9所以会读取九组二进码从f一直读到1为止在1的后面一个码则是代表下一个字由几组码构成。当然因为开头的9可以知道后面九个码都代表同一个字码的第几个位元为1所以就算不按顺序乱数排成9c89a6df12也无所谓还原计算回来后都一样代表15,13,12,1o,9,8,6,2,1位元为1更能保障安全。
云飞又说:利用演算的方式也可以抽出big5码的四个十六进位数字单独做加减比如b746用b+1、71、4+2、62的方式编码成c664等到要解码时再重新加减回去变c1、6+1、62、4+2还原回b746。
天玄又问:如果这样做的话那恰好被猜出几个字来不就可以全部解出来了?
云飞冷笑道:你以为编码的人会这么笨吗?多重编码方式每个字可以用不同的编码规则然后以文件档头的隐藏位元做运算式。配合不同的排列规则往往直接解是解不出什么东西来的。不过这些还算是下乘的东西真正上乘的....
此时云飞的计算机上闪起新邮件讯息云飞便先打开看。附加档是一个加密演算过后的文字档是明昂传给他的私密讯息便邪笑道:编码的活教材进来了!
不知道这封讯息里面是什么?...待续
------------
第一百二十六章 沉重的空气
邮件上写著:虽然这是一封重要的讯息但请用我们之前约定的规则想办法写程式解开来读取。如果无法解出来就按照既定约定去他会告诉你们的。
云飞转头问宇成:我们有和明昂约定什么吗?
宇成想了想后说:嗯...我想不出来?到底是什么?他又是指谁?
云飞说:算了就把它解出来我们就知道了。
天玄起身说:先等一等云飞这样下去我完全无法确定我会不会。这样吧!这次这个加密档你告诉我解密的方式除非我亲自做一遍不然我无法确定!
云飞点头说:好吧我把那规则告诉你。(似乎忘记这是重要的讯息...?)
云飞打开数据夹并找到该规则说明文件档说:我们定义了四种字码加密方式还有四种组合运用加密方式的规则利用加密档每段第一个byte做为定义假如值是84代表1oooo1oo就是用第一种加密方式与第二种组合规则。
天玄从u1traedit中看到第一段第一个字元值为28oo便说:这代表oo1o1ooo第三种加密和第一种组合规则没有错吧?第二个oo应该不用管它吧?
云飞点头说:对oo是补成双位元!现在我把公式给你!在这种加密方式中字码的四个十六进位档第一个加1、第二个加3、第三个加2、第四个加4以b746来