Автор оригинала: Pankaj Kumar.
В последнем посте мы увидели, что Номера кредитных карт не являются случайными, и их можно проверить с помощью Алгоритма Луна , и я написал программу java для проверки номера кредитной карты .
Последняя цифра номера кредитной карты называется Контрольной цифрой и добавляется к частичному номеру кредитной карты для создания полного действительного номера кредитной карты. Например, если у нас есть частичный номер карты из 15 цифр 123456789012345, то, используя алгоритм Луна, мы обнаружим, что контрольная цифра должна быть 2, поэтому действительный номер кредитной карты будет 1234567890123452.
Здесь я предоставляю метод на java для генерации контрольной цифры для частичного номера кредитной карты.
Здесь я предоставляю метод на java для генерации контрольной цифры для частичного номера кредитной карты.
package com.journaldev.design.test;
public class GenerateCheckDigit {
public static void main(String[] args) {
long l = 123456789012345L;
int cd = generateCheckDigit(l);
System.out.println("Valid card number="+l+cd);
}
private static int generateCheckDigit(long l) {
String str = Long.toString(l);
int[] ints = new int[str.length()];
for(int i = 0;i< str.length(); i++){
ints[i] = Integer.parseInt(str.substring(i, i+1));
}
for(int i = ints.length-2; i>=0; i=i-2){
int j = ints[i];
j = j*2;
if(j>9){
j = j%10 + 1;
}
ints[i]=j;
}
int sum=0;
for(int i = 0;i< ints.length; i++){
sum+=ints[i];
}
if(sum%10==0){
return 0;
}else return 10-(sum%10);
}
}
Как только действительный номер счета будет сгенерирован путем добавления контрольной цифры к частичному номеру кредитной карты, вы можете проверить его с помощью моей последней программы для проверки номера кредитной карты .