大家都知道信用卡卡号是由一串数字组成,那么这些数字都代表什么呢?身份证上的数字可以看出地区,出生年月日等等信息,那么我们根据信用卡上的数字可以得出什么信息呢?
一、数字的含义:
1、第一位数字代表不同的卡组织
通常,Visa卡首位数字为4,万事达首位数字为5,银联首位数字为6,JCB卡和运通卡通常都是3开头的。
2、前 6 位数字(包含第一位数字)是发卡机构代码(Issuer Identification Number, 简称IIN),用于标识具体的卡片发行机构
卡片可以通过它们的 IIN 来分辨是由哪家机构发行的。例如,
Visa(维萨):4xxxxx
Mastercard(万事达):51xxxx – 55xxxx
银联:62xxxx
3、第 7 位至倒数第二位数字是银行帐户号
这部分数字都是由银行自己定义的,每个银行的规则都不同。如果是标准的 12 位数字,大约有万亿种组合,也就是说每个发卡机构可以提供万亿张不同的信用卡;但很多信用卡只用了 9 位,这就构成了我们通常见到的 16 位数字信用卡卡号。
4、最后一位是校验数字
这位数字一般采用卢恩(Luhn)算法来校验卡号。Luhn算法(Luhn algorithm),也称为“模10算法”,是一种简单的校验和算法,一般用于验证身份识别码。我们来看看最后一位校验数字是如何算出的。
二、计算步骤:
1. 第三列,从校验位开始,从右往左,奇数位乘2,然后将两位数字的个位与十位相加;
2. 第四列,把得到的数字与原数字串的偶数位相加在一起,得到71;
3. 取结果的个位数1
4. 用10减去个位数1,得到9,就是实卡中最后一位校验码
小技巧:
我们也可以用这一方法来验证银行卡号的真假。方法与上面的相似,方法如下:
1. 从右边开始,将奇数位的数字乘以 2;
2. 将得到的数字和刚才剩余的(偶数位)的所有数字相加,如果遇到乘以 2 后得到的数字是 2 位数的,则将其个位和十位数相加;
3. 如果得到的数字之和是 10 的倍数,则号码为真,否则就是假的信用卡号了。