一、银行卡号码 号码由6位发卡行标识代码(BIN)、若干自定义位、校验码 根据ISO标准,银行卡长度一般在13-19位,国际上也有12位的。银联标准卡卡长度一般是在16-19位,双组织卡也有13-19位的。 二、BIN码 BIN号即银行标识代码的英文缩写。BIN由6位数字表示,由国际标准化组织(ISO)分配给各从事跨行转接交换的银行卡组织。 2014年底,国际标准组织(ISO)已经将BIN由6位调整到8位数字。目前国内银联卡,BIN长度以6位占绝大部分,另外还存在7、8、9、10等位数卡BIN。 1、MII 发卡行标识代码第一位,为发卡行业标识号Major Industry Identifier(MII),代表的是发卡机构所处行业。 1开头,UATP 2200-2204,MIR 2221-2720,MASTERCARD 4开头,Visa 51-55,属于MASTERCARD卡组织 60开头,China T-Union 62开头,China UnionPay 9,由本国标准机构分配。9开头仅限国内使用。 只要能获取到卡BIN数据,就能判断出银行卡发卡行及卡种。目前支付宝、微信等大部分主流需要绑卡的应用都是如此实现。 目前银联标准卡以62开头,如622848开头的卡为农行借记卡。早期以9开头的银行卡,这些卡都是国内自行分配的,仅限国内使用。 三、自定义位 发卡行自定义位,一般在6-12位。 四、校验码算法 校验码为银行卡号最后一位,采用LUHN算法,亦称模10算法。计算方法如下: 第一步:从右边第1个数字开始每隔一位乘以2; 第二步: 把在第一步中获得的乘积的各位数字相加,然后再与原号码中未乘2的各位数字相加; 第三步:对于第二步求和值中个位数求10的补数,如果个位数为0则该校验码为0。 举例:625965 087177209(不含校验码的银行卡号) 第一步:6*2=12,5*2=10,6*2=12,0*2=0,7*2=14,7*2=14,2*2=4,9*2=18 第二步:1+2 + 1+0 + 1+2 + 0 + 1+4 + 1+4 + 4 + 1+8 = 30 30 + 2+9+5+8+1+7+0 = 62 第三步:10-2=8。校验码是8,完整的卡号应该是6259650871772098。 目前银联卡几乎都支持校验码算法,但是也不排除极个别不支持此算法的。 |
|