Android luhn演算法 銀行卡號校驗
阿新 • • 發佈:2019-02-07
LUHN演算法,主要用來計算信用卡等證件號碼的合法性。
1、從卡號最後一位數字開始,偶數位乘以2,如果乘以2的結果是兩位數,將兩個位上數字相加儲存。
2、把所有數字相加,得到總和。
3、如果信用卡號碼是合法的,總和可以被10整除。
/**
* 驗證是否為銀行卡號 使用luhn 方法驗證
*/
public static boolean isBankNumber(String bankNumber) {
char[] cc = bankNumber.toCharArray();
int[] n = new int[cc.length + 1 ];
int j = 1;
for (int i = cc.length - 1; i >= 0; i--) {
n[j++] = cc[i] - '0';
}
int even = 0;
int odd = 0;
for (int i = 1; i < n.length; i++) {
if (i % 2 == 0) {
int temp = n[i] * 2;
if (temp < 10 ) {
even += temp;
} else {
temp = temp - 9;
even += temp;
}
} else {
odd += n[i];
}
}
int total = even + odd;
if (total % 10 == 0)
return true;
return false;
}