来源:信息时代的犯罪侦查
ID:besti_xxsddfzzc
作者: MrColin、时不我待
一、银行卡结构
XXXXXX XXXXXXXXXXXX X
发卡行标识代码 自定义位 校验码
根据ISO标准,银行卡长度一般在13-19位,国际上也有12位的。银联标准卡卡长度一般是在16-19位,双组织卡也有13-19位的。
二、发卡行标识代码
发卡行标识代码Bank Identification Number(BIN),又叫发卡机构标识代码Issuer Identification Numbers(IIN)。一般由6位数字组成,2014年底,国际标准组织(ISO)已经将BIN由6位数字调整到8位数字。目前国内银联卡,因银行众多,特别是村镇银行的存在,BIN长度以6位占绝大部分,另外还存在7、8、9、10等位数卡BIN。
发卡行标识代码第一位,为发卡行业标识号Major Industry Identifier(MII),代表的是发卡机构所处行业。具体分配规则如下:
目前银联标准卡以62开头,各银行再向银联进行卡BIN申请,如622848开头的卡为农行借记卡。我们发现,银联卡不都是以62开头,主要有2种情况。第一种是双组织卡,如银联、运通双组织卡,一般以信用卡居多,如招行与运通合作的运通卡。另外一种即早期以9开头的银行卡,这些卡都是国内自行分配的,仅限国内使用,无法与国际进行接轨。以下为部分常见卡组织发行的银行卡起始数字:
银联卡,通过卡BIN能获取到的信息不仅仅是发卡行,还能确定该卡卡种、卡名称、卡号长度等信息。以下为部分卡BIN信息列举:
因此,只要能获取到比较全面的卡BIN数据,就能判断出银行卡发卡行及卡种。目前支付宝、微信等大部分主流需要绑卡的应用都是如此实现。
三、自定义位
发卡行自定义位,一般在6-12位。
四、校验码算法
校验码为银行卡号最后一位,采用LUHN算法,亦称模10算法。计算方法如下:
第一步:从右边第1个数字开始每隔一位乘以2;
第二步: 把在第一步中获得的乘积的各位数字相加,然后再与原号码中未乘2的各位数字相加;
第三步:对于第二步求和值中个位数求10的补数,如果个位数为0则该校验码为0。
举例:
6259 6508 7177 209(不含校验码的银行卡号)
第一步: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。
值得指出的是,目前银联卡几乎都支持校验码算法,但是也不排除极个别不支持此算法的,如杭州银行早期发行的西湖卡。
五、常见的国际通行信用卡结构
常见的国际通行信用卡种有:VISA、MasterCard、AE、DC、JCB 。
1、VISA和MASTERCARD信用卡卡号通常为16位:
xxxx xxxx xxxx xxxx
第1—6位 为发卡行的 BIN NO.可用于识别发卡行的编码。
第7—12位 卡顺序号
第13位 0 代表主卡,1-9 代表副卡
第14位 代表卡结单发出日期
第15位 代表该卡为第几张卡,补发卡后会加1
第16位 检验码
2、维萨卡(VISA)
卡号长度:16位(以前有极少数的卡为13位,现已停止发行了)
卡号范围:400000—499999
识别方法:开头两位40-49
3、万事达卡(MasterCard)
卡号长度:16位
卡号范围:510000—559999
识别方法:开头两位50-59
4、运通卡(American Express):美国AE卡
卡号长度:15位
卡号范围:340000—349999,370000—379999
识别方法:开头两位34或者37
5、大莱卡(DinersClub)
卡号长度:14位
卡号范围:300000—305999,309500—309599
360000—369999,380000—399999
识别方法:开头两位30、36、38、39
6、JCB卡(JCB):日本卡组织
卡号长度:16位
卡号范围:352800—358999
识别方法:开头两位35
六、掌握编码规则有什么用?
对电子取证工作来讲,熟悉的童鞋可能会遇到这样的问题:在侵犯公民个人信息案件中,好歹需要对涉案信息进行一下计算,确认一个大致的量级。
小编曾遇到过一个专门收集国内外银行卡信息,进行盗刷获利的案件。了解银行卡编码规则后,我们编制了适中的正则表达式,经过严格测试,基本上能够比较精确的予以命中。如此便能高效的测算出一个量级,为定罪量刑提供一个依据。
推荐阅读: