銀行卡演算法規則

2022-07-08 16:18:27 字數 1456 閱讀 1375

/**

*luhn校驗演算法校驗銀行卡號

*description: 銀行卡號luhm校驗

*luhm校驗規則:16位銀行卡號(19位通用):

*1.將未帶校驗位的 15(或18)位卡號從右依次編號 1 到 15(18),位於奇數字型大小上的數字乘以 2。

*2.將奇位乘積的個十位全部相加,再加上所有偶數字上的數字。

*3.將加法和加上校驗位能被 10 整除。

*方法步驟很清晰,易理解,需要在頁面引用jquery.js

*bankno為銀行卡號

*/function luhmcheck(bankno)

var arrjishu = new array(); //奇數字*2的積 <9

var arrjishu2 = new array(); //奇數字*2的積 >9

var arroushu = new array(); //偶數字陣列

for (var j = 0; j < newarr.length; j++)

else //偶數字

arroushu.push(newarr[j]);

}var jishu_child1 = new array();//奇數字*2 >9 的分割之後的陣列個位數

var jishu_child2 = new array();//奇數字*2 >9 的分割之後的陣列十位數

for (var h = 0; h < arrjishu2.length; h++)

var sumjishu = 0; //奇數字*2 < 9 的陣列之和

var sumoushu = 0; //偶數字陣列之和

var sumjishuchild1 = 0; //奇數字*2 >9 的分割之後的陣列個位數之和

var sumjishuchild2 = 0; //奇數字*2 >9 的分割之後的陣列十位數之和

var sumtotal = 0;

for (var m = 0; m < arrjishu.length; m++)

for (var n = 0; n < arroushu.length; n++)

for (var p = 0; p < jishu_child1.length; p++)

//計算總和

sumtotal = parseint(sumjishu) + parseint(sumoushu) + parseint(sumjishuchild1) + parseint(sumjishuchild2);

//計算luhm值

var k = parseint(sumtotal) % 10 == 0 ? 10 : parseint(sumtotal) % 10;

var luhm = 10 - k;

var my = false;

if (lastnum == luhm)

else

return my;

}

銀行卡業務規則

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

銀行卡校驗規則

銀行卡號碼,一般是13 19位,由 卡bin 發卡行自定位 校驗位 三部分構成,其中 1 前6位是卡bin,由國際標準化組織分配給從事跨行轉接交換的銀行卡組織 2 發卡機構自定義位由6 12位數字組成,由發卡機構賦予 3 卡號的後1位數字,根據校驗位以前的數字 包括bin 取值按luhn方程計算得出...

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

一 銀行卡結構 x 發卡行標識 自定義位 校驗碼 根據iso標準,銀行卡長度一般在13 19位,國際上也有12位的。銀聯標準卡卡長度一般是在16 19位,雙組織卡也有13 19位的。二 發卡行標識 發卡行標識 bank identification number bin 又叫發卡機構標識 issue...