日期:2014-05-20  浏览次数:20758 次

问一个关于银行卡号规则的问题?
银行卡号到底是怎么生成的?
有时候随便修改其中的数字,试了好多遍都不符合,感觉很高深!
有谁了解的,让我也长点见识~~~~~~~~

------解决方案--------------------
关注

------解决方案--------------------
问问银行的人,估计不能告诉你,哈哈
------解决方案--------------------
银行卡号中最后一位数字还是几位数字是校验码,这个校验码是通过前面的数字计算出来的,这主要可以校验卡号输入时的错误。

类似的还有 EAN 条形码、ISBN 书号等等。
------解决方案--------------------
还有 18 位身份证号的最后一位也是校验码
------解决方案--------------------
现行 16 位银联卡现行卡号开头 6 位是 622126~622925 之间的,7 到 15 位是银行自定义的,
可能是发卡分行,发卡网点,发卡序号,第 16 位是校验码。

16 位卡号校验位采用 Luhm 校验方法计算:

1,将未带校验位的 15 位卡号从右依次编号 1 到 15,位于奇数位号上的数字乘以 2
2,将奇位乘积的个十位全部相加,再加上所有偶数位上的数字
3,将加法和加上校验位能被 10 整除。

比如卡号:

Java code

   6  2  2  5   8  8  1  4   1  4  2  0   7  4  3
*  2     2      2     2      2     2      2     2
--------------------------------------------------
  12  2  4  5  16  8  2  4   2  4  4     14  4  6

将上面的数字加和:1+2+2+4+5+1+6+8+2+4+2+4+4+1+4+4+6 = 60

由于 60 加上 0 才能被 10 整除,所以校验位为 0

因此该卡号为 6225 8814 1420 7430

------解决方案--------------------
发现这个帖子很强大!
喜欢看强大的东西!
------解决方案--------------------
呵呵,不管是 13 位、16 位、19 位的银行卡卡号都是采用 Luhm 校验算法算出来的,这可是 ISO 标准。

中国居民身份证号码是国家标准,标准编号是 GB 11643。校验位的计算方法,可以参考互动百科上的资料:
http://www.hudong.com/wiki/%E5%B1%85%E6%B0%91%E8%BA%AB%E4%BB%BD%E8%AF%81%E5%8F%B7%E7%A0%81