银行卡编码规则及检验算法详解
原文:https://blog.csdn.net/wmlml/article/details/54345413
一、銀行卡結(jié)構(gòu)
XXXXXX XXXXXXXXXXXX X
發(fā)卡行標(biāo)識代碼 自定義位 校驗(yàn)碼
根據(jù)ISO標(biāo)準(zhǔn),銀行卡長度一般在13-19位,國際上也有12位的。銀聯(lián)標(biāo)準(zhǔn)卡卡長度一般是在16-19位,雙組織卡也有13-19位的。
二、發(fā)卡行標(biāo)識代碼
發(fā)卡行標(biāo)識代碼Bank Identification Number(BIN),又叫發(fā)卡機(jī)構(gòu)標(biāo)識代碼Issuer Identification Numbers(IIN)。一般由6位數(shù)字組成,2014年底,國際標(biāo)準(zhǔn)組織(ISO)已經(jīng)將BIN由6位數(shù)字調(diào)整到8位數(shù)字。目前國內(nèi)銀聯(lián)卡,因銀行眾多,特別是村鎮(zhèn)銀行的存在,BIN長度以6位占絕大部分,另外還存在7、8、9、10等位數(shù)卡BIN。
發(fā)卡行標(biāo)識代碼第一位,為發(fā)卡行業(yè)標(biāo)識號Major Industry Identifier(MII),代表的是發(fā)卡機(jī)構(gòu)所處行業(yè)。具體分配規(guī)則如下:
目前銀聯(lián)標(biāo)準(zhǔn)卡以62開頭,各銀行再向銀聯(lián)進(jìn)行卡BIN申請,如622848開頭的卡為農(nóng)行借記卡。我們發(fā)現(xiàn),銀聯(lián)卡不都是以62開頭,主要有2種情況。第一種是雙組織卡,如銀聯(lián)、運(yùn)通雙組織卡,一般以信用卡居多,如招行與運(yùn)通合作的運(yùn)通卡。另外一種即早期以9開頭的銀行卡,這些卡都是國內(nèi)自行分配的,僅限國內(nèi)使用,無法與國際進(jìn)行接軌。以下為部分常見卡組織發(fā)行的銀行卡起始數(shù)字:
銀聯(lián)卡,通過卡BIN能獲取到的信息不僅僅是發(fā)卡行,還能確定該卡卡種、卡名稱、卡號長度等信息。以下為部分卡BIN信息列舉:
【國內(nèi)銀行卡BIN號速查簡表】(資料詳見:http://wenku.baidu.com/view/1d93ebeb856a561252d36fb3.html)
因此,只要能獲取到比較全面的卡BIN數(shù)據(jù),就能判斷出銀行卡發(fā)卡行及卡種。目前支付寶、微信等大部分主流需要綁卡的應(yīng)用都是如此實(shí)現(xiàn)。
三、自定義位
發(fā)卡行自定義位,一般在6-12位。
中間位數(shù)由發(fā)卡行自定義,一般由6-12位數(shù)字組成。最多可以使用12位數(shù)字。
每個(gè)銀行的個(gè)人賬號標(biāo)識規(guī)則有所不同。有的銀行在這部分內(nèi)容中會包含分行、支行、儲蓄網(wǎng)點(diǎn)等代碼信息。有得銀行可能就沒有這么詳細(xì),會使用自然流水順序碼
四、校驗(yàn)碼算法
校驗(yàn)碼為銀行卡號最后一位,采用LUHN算法,亦稱模10算法。計(jì)算方法如下:
第一步:從右邊第1個(gè)數(shù)字開始每隔一位乘以2;
第二步: 把在第一步中獲得的乘積的各位數(shù)字相加,然后再與原號碼中未乘2的各位數(shù)字相加;
第三步:對于第二步求和值中個(gè)位數(shù)求10的補(bǔ)數(shù),如果個(gè)位數(shù)為0則該校驗(yàn)碼為0。
舉例:
6259 6508 7177 209(不含校驗(yàn)碼的銀行卡號)
第一步: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
所以,校驗(yàn)碼是8,完整的卡號應(yīng)該是6259650871772098。
目前銀聯(lián)卡幾乎都支持校驗(yàn)碼算法,但是也不排除極個(gè)別不支持此算法的,如杭州銀行早期發(fā)行的西湖卡。
注:本文摘錄于不同地方,并經(jīng)實(shí)踐整理所得,望交流。
總結(jié)
以上是生活随笔為你收集整理的银行卡编码规则及检验算法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 32查运行内存的map文件_linux内
- 下一篇: 微信多开txt_在电脑上怎么实现微信多开