卡号背后有秘密
使用信用卡在网上购物时,都需要输入卡号。卡号足足有16位,手一抖导致号码输入错误,网页就会立即弹出输入错误提示。难道购物网站掌握了所有人的信用卡号码?在《我们在四维空间可以做什么》一书中可以找到答案。
做个试验。拿出一张纸,将卡号依次写在上面,从第一位开始,将所有奇数位的数字依次划去,然后把划去的数字乘以2,将结果写在原数字的上方。所得结果如果是两位数,再将它划去,把两位数的数字依次相加,将结果继续写在原数字上方。最后,将纸上留下的所有数字相加,会发现结果一定是10的倍数。如果计算结果不是10的倍数,那么,一定是输错了卡号。
这就是为什么购物网站可以立即告诉我们输入的卡号是否正确。这种规律要追溯到诞生于1960年的一个专利——数字验错计算机。汉斯·卢恩发明了一台机器,用于复杂的工业流程:将各个零件的编号输入机器中,然后在包装上打印出这个数和它的校验码;或者将这些数反过来输回到机器中,如果这个数字是正确的,机器便会在包装上印一个勾。
这种手持设备的出现早于便捷式计算机,它通过齿轮运转产生校验码,而齿轮是部分机械装备的心脏。20世纪初期,希腊人在一艘约公元前65年遇难的沉船上,找到已有两千年历史的安提凯希拉天体仪,它的用途是计算天体运行周期,协助古人筹备宗教节日和提醒谷物收割。该仪器由37道青铜齿轮和刻度盘组成,齿轮彼此咬合,有一组齿轮的作用甚至是模拟月球的运动方式。这项技术工艺失传后,直到1600年后人类才有能力发明出复杂程度与之旗鼓相当的计算机械。
卢恩的这项发明恰好出现在银行卡开始推广的时候。当时,各种各样的识别号码开始在人们的公共和私人生活中发挥重要作用,但这些数字难以记忆,而且有可能被错误地转录或被人故意伪造,所以迫切需要一种能够快速验证识别号码是否有效的手段。于是,这种校验码规律被特意加到了银行卡的卡号中并被广泛推广应用。
也许有人会说,为什么需要每隔一位将数字翻倍?这是因为,当人们在手抄数字的时候,经常发生将两个数字顺序写颠倒的情况,如果直接计算校验和,那么不管数字以什么样的顺序排列,最终的结果都一样。但是,卢恩认为“如果依照这里描述的方法每隔一位替换一个数字,就可以把这种错误检查出来”,因为数字的位置变化会改变最后的和。
也许大多数人在日常生活中从未留意过条形码和卡号中的校验码,但是它与我们的生活息息相关。尤其是在面对邮件或者信息诈骗的时候,我们将自己的卡号发给诈骗者,对方就会利用卡号进行盗刷。而在实际生活中,一些企业会使用邮件系统扫描向外传输的邮件队列中的所有16位数字序列,寻找卢恩的校验规律。如果找到匹配这个规律的数字串,系统就会将它们标记,然后把邮件拦截进行二次查验,判断是随机匹配还是发件人发送了不该发送的卡号,尽可能地避免持卡人的损失。
用户登录
还没有账号?
立即注册