LUHN 模10 演算法 銀行卡校驗

2022-09-08 01:51:11 字數 710 閱讀 6580

信用卡luhn演算法(模10)具體的校驗過程如下:

1、從卡號最後一位數字開始,逆向將奇數字(1、3、5等等)相加。

2、從卡號最後一位數字開始,逆向將偶數字數字,先乘以2(如果乘積為兩位數,則將其減去9),再求和。

3、將奇數字總和加上偶數字總和,結果應該可以被10整除。

例如,卡號是:5432123456788881

則奇數、偶數字分布:5432123456788881

奇數字和=35

偶數字乘以2(有些要減去9)的結果:1 6 2 6 1 5 7 7,求和=35。

最後35+35=70 可以被10整除,認定校驗通過。

j**a**

public static boolean luhnvalidate(string cardno) 

if(null == cardno || cardno.matches("[0-9]*"))

int result = 0;

int digit = 0;

int counter = 0;

for(int i = cardno.length()-2; i >= 0; i--) else

counter++;

} return (10 - result%10) == character.digit(cardno.charat(cardno.length()-1), 10);

}

銀行卡號碼校驗演算法(Luhn演算法,又叫模10演算法)

有時候在網上辦理一些業務時有些需要填寫銀行卡號碼,當胡亂填寫時會立即報錯,但是並沒有發現向後端傳送請求,那麼這個效果是怎麼實現的呢。對於銀行卡號有乙個校驗演算法,叫做luhn演算法。銀行卡號碼的校驗採用luhn演算法,校驗過程大致如下 1.從右到左給卡號字串編號,最右邊第一位是1,最右邊第二位是2,...

銀行卡的校驗

銀行卡號一般是16位或者19位。由如下三部分構成。1,前六位是 發行者標識 2,中間的位數是 個人賬號標識 從卡號第七位開始 一般由6 12位數字組成。最多可以使用12位數字。3,最後一位是 根據卡號前面的數字,採用luhn演算法計算出的最後一位校驗位 public static boolean c...

銀行卡校驗規則

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