Для проверки правильности номера банковской карты используется алгоритм вычисления контрольной цифры номера карты.
Предназначен не для шифрования, но исключительно для выявления ошибок, вызванных непреднамеренным искажением данных (например, при ручном вводе номера карты). Позволяет лишь с некоторой степенью достоверности судить об отсутствии ошибок в блоке цифр, но не даёт возможности нахождения и исправления обнаруженной неточности.
Аналогично определяется правильность ввода, например, ИНН - подробно можно прочитать здесь Я несколько раз реализовывал этот алгоритм на практике