A06:夜光杯
     
本版列表新闻
     
2015年10月03日 星期六 放大 缩小 默认   
数据校验
Andrew Boyd(安德鲁·博伊德) 姜小龙
  Andrew Boyd(安德鲁·博伊德) 文 姜小龙 译

  我们都曾经有过类似经历:当在网上输入信用卡号码,按回车键时,计算机显示卡号无效。仔细查对输入号码,发现输入错误。重新键入正确号码,问题解决,付款成功。

  那么究竟网站如何确认号码是无效的呢?也许你会猜想,输入卡号送到信用卡公司数据库相比较后,发现错误数据不存在。事实也许并非如此。错误很可能是用一个简单一致性校验算法自动检测出来的。早在1954年,汉斯·彼得·卢恩发明该算法并取得专利。

  卢恩生于德国,年轻时来到美国。上世纪二十年代中期,他开始在纺织业工作。由于他显示出卓越创造力,IBM公司聘用他为高级研发工程师。而后卢恩发明对计算机科学发展影响深远,包括以他名字命名的一致性校对算法——卢恩算法。

  位数错误,顺序错误,重复输入,都经常出现在数据输入过程之中。为了检测这类经常发生错误,信用卡最后一位数字是校验位。金融机构发行卡号时,校验位值不是随机数,而是由一个公式计算出来的,其它位数值都与公式计算结果有关。同一个公式计算出校验值,与你在网上输入校验值比较。如果两者不同,卡号无效。

  该过程只是更广泛领域(信号校验)一个实际应用。当电子信息发送时,由于无线网络信号不好,收到信息可能被改变。校验方法不仅可以确定发出信息准确,而且保证接收信息与其相同。没有完美无瑕的校验算法,只是有的算法比较好。其代价是复杂性,复杂程度越高,运算时间越长。好校验算法要根据实际需要,来权衡复杂性和计算时间之间的利弊。

  卢恩算法很适合信用卡校验需要。人们发明更精准算法,但是还没有好到取代深深扎根在金融界的卢恩算法。卢恩算法不仅检测出大多数输入错误,并且令人难以置信的简洁。你可以在网上査到卢恩算法,验算你自己的信用卡号码。

  你甚至可以用卢恩算法生成一个有效新信用卡号码,能通过网上基本校验。但是该号没有用处,除非它被发行过,并且你有其他相关信息,比如姓名、地址……不要被非法号码所诱惑,因为伪造信用卡号是严重违法行为。

     
放大 缩小 默认   
   第A01版:一版要闻
   第A02版:时政·要闻
   第A03版:上海新闻
   第A04版:综合新闻
   第A05版:文体新闻
   第A06版:夜光杯
   第A07版:夜光杯
   第A08版:连载
   第B01版:新民俱乐部
   第B02版:广告
   第B03版:家装专版
   第B04版:家装专版
嫁人要嫁公元人
数据校验
做世界的房东
那些年,旧式里弄的冬寒夏暑
秋来秋去——秋色
想起炸毁的闸北老屋
图片新闻
新民晚报夜光杯A06数据校验 2015-10-03 2 2015年10月03日 星期六