Все номера кредитных карт используются для проверки цифр, чтобы определить, является ли номер кредитной карты действительным или пользователь набрал его неправильно. Обычно он включает в себя конкретные числа, которые должны быть связаны с арифметической операцией и операцией по модулю, чтобы уменьшить выходное пространство до одной цифры. Например, можно добавить цифры и выполнить операцию по модулю (10) для каждых 3 цифр. Предположительно, введенный номер будет «2855-9649-2915», последняя цифра каждого 4-значного блока будет проверочным номером:
2+8+5=15 => modulo10(15)=5 (correct)
9+6+4=19 => module10(19)=9 (correct)
2+9+1=12 => module10(12)=2 (not 5, so incorrect number was entered)
Эта страница содержит описание кредитных карт и исходный код php, который его реализует.
РЕДАКТИРОВАТЬ: ложные числа, исправлено. Спасибо, Крис!