銀行卡編碼規則及檢驗演算法詳解

2021-07-25 23:14:48 字數 1798 閱讀 1461

一、銀行卡結構

****** ************ x

發卡行標識** 自定義位 校驗碼

根據iso標準,銀行卡長度一般在13-19位,國際上也有12位的。銀聯標準卡卡長度一般是在16-19位,雙組織卡也有13-19位的。

二、發卡行標識**

發卡行標識**bank identification number(bin),又叫發卡機構標識**issuer identification numbers(iin)。一般由6位數字組成,2023年底,國際標準組織(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位。

中間位數由發卡行自定義,一般由6-12位數字組成。最多可以使用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。

目前銀聯卡幾乎都支援校驗碼演算法,但是也不排除極個別不支援此演算法的,如杭州銀行早期發行的西湖卡。

銀行卡Luhm校驗演算法

if val.length 16 if val.length 19 if pattern.exec val else vararrjishu newarray 奇數字 2的積 9 vararrjishu2 newarray 奇數字 2的積 9 vararroushu newarray 偶數字陣列 f...

銀行卡luhm校驗演算法

1 2 15位銀行卡luhm校驗演算法 3 1 從卡號最後一位數字開始,逆向將奇數字 1 3 5等等 相加。4 2 從卡號最後一位數字開始,逆向將偶數字數字,先乘以2 如果乘積為兩位數,則將其減去9 再求和。5 3 將奇數字總和加上偶數字總和,結果應該可以被10整除。6 param temp 前15...

銀行卡業務規則

通常為磁條 ic晶元的復合卡。小額支付賬戶的有效期和借記賬戶或貸記賬戶的有效期相同。開戶時,如果開通了借記賬戶,則借記賬戶餘額為客戶開戶存款金額,小額支付賬戶餘額為零。既有借 貸記賬戶,又有小額支付賬戶時,借貸記賬戶優先順序高於小額支付賬戶,在既支援借 貸記應用又支援小額支付應用的金融ic卡受理終端...