跳转到正文

第134期数字3分钟浏览 28

发布 · 杂学书库 别馆

银行卡号16位,是随便编的数字吗?

卡号的每一位都有自己的任务。支付页面能马上发现号码输错,秘诀也藏在里面。

阳光洒在木桌上,一张没有数字的白色芯片卡靠着棕色皮夹,旁边是黑屏手机和咖啡杯

银行卡上的16位卡号不是随便排的数字。开头几位表示是哪家公司发的卡,最后一位则是用前面所有数字算出来的校验数字。所以在网上支付页面哪怕只输错一位,还没去问发卡公司,页面就可能马上提示号码有误。

开头几位是卡的地址

国际标准ISO/IEC 7812规定了卡号每一部分的作用。第一位数字表示行业,以4或5开头的是银行和金融类的卡。一般来说,以4开头的是Visa,以51到55开头的是Mastercard。前6位是表示发卡公司的发卡机构号码,如今已经增加到最多8位。

接下来的数字是每一张卡各自的专属号码,最后一位是校验数字。也不是所有卡都是16位。美国运通卡以34或37开头,共15位。

最后一位是算出来的

这种算法是IBM研究员汉斯·彼得·卢恩在1954年申请专利的方法,因此被称为“卢恩算法”。从最后一位开始倒着数,把第二位、第四位这样每隔一位的数字乘以2。乘以2后如果变成两位数,就把这两个数字相加,变成一位数。最后一位的取值,要让这些改过的数字和其余所有数字加起来正好是10的倍数。

所以只要输错一位数字,总和就不再是10的倍数,错误马上就会暴露。把相邻两个数字顺序打反的失误,大多也能查出来。不过也有少数失误会被漏掉,比如把09输成90。

不是锁,而是输入检查

常见的误解是,最后一位的计算是保护银行卡的安全措施。这种算法是公开的,谁都能编出符合规则的号码。这个数字只能发现输入错误,实际能不能付款,要由发卡公司另外根据有效期、卡背面的安全码和额度等来判断。

这种计算在生活中随处可见。在支付页面刚输完卡号就出现红线,说明这项检查先运行了。遇到这种情况,先别担心卡出了问题,把数字一位一位重新核对一遍就好。每部手机都有的15位IMEI号码,最后一位也是用同样的方法加上的。

卡号的最后一位是用前面数字算出的校验数字。它能发现输入错误,但不是安全措施。

整理与参考笔记 · ISO/IEC 7812-1;卢恩美国专利2,950,048(1960). 号码结构依据国际标准,算法依据卢恩的专利。各卡组织的开头号码分配和位数略有不同,发卡机构号码在2017年修订后变为8位。

编写标准报告错误

小测验

卡号最后一位的主要作用是什么?

仅保存在此浏览器中。

同类文章 · 数字

  1. 10.18数字降水概率60%,到底会不会下雨?浏览 38 · 4分钟
  2. 10.16数字优惠30%后再优惠20%,合起来是半价吗?浏览 55 · 4分钟
  3. 10.15数字硬币连续五次都是正面,下次该轮到反面了吗?浏览 38 · 3分钟