Как проверить валидность банковской карты

Обновлено: 05.05.2024

This content belongs to Credit Card Validator & the process to validate or check any credit card detail.

Credit Card Validator

As you already know enough information about generating credit card numbers of various companies like Discover, American Express, JCB, MasterCard or Visa but how do you know that the card number which is generated through these websites is valid or not?

Enter Credit Card Number to Validate

Resulting details on the right side for desktop and below for mobile

Checking Detials On Server

Validation Result

Card Type : Not Specified
Card Number : ******************
Validation Test *********
Result *********

The details associated with the card number are not going to be true as they are always chosen at random. However, we assure you to provide 100% valid credit card numbers with the help of Luhn Algorithm. But, if you do not trust and want to cross check once that the credit card number that you have got using our generator is valid or not then you can use the Credit Card Checker which is being provided by CardGenerator.io.

What Exactly the Credit Card Validator Checks?

The credit card validator check the credit card number that you provide and give back a valid result which will be carefully analysed and reviewed for an accurate Major Industry Identifier that is MII code. Further, you know that how it can be recognized by matching the prefixes in the credit card number, the IIN code and PAN number along with the checksum. The validator of the CardGenerator.io evaluates cards for MasterCard, Discover, American Express cards and JCB cards also.

Most of the credit card generators have some rules predefined to validate the credit card numbers and they go through them serially and check the following:

✅ Luhn Algorithm: – The validator is designed in such a way to ensure that the credit card number that is entered passes the Luhn algorithm to prove itself to be a valid credit card number.
✅ Major Industry Identifier: – It is the first digit of the credit card number.
✅ Issuer Identification Number: – It consists of the next six digits.
✅ Personal Account Number & Checksum: – Last seven digits include 6 digit personal account number and a 1 digit checksum.

How Credit Card Validation is Processed?

We at CardGenerator check for the following:

✅ First Digit – Major Industry Identifier
✅ Six Digit – Issuer identification number
✅ Seven Digit – Personal Account Number and Checksum

Instructions to Use Credit Card Validator or CC Checker

1. Let the validator page load completely, when it is loaded, you will see a box which says to enter the credit card number that you wish to validate.

2. Write the full credit card number on the space given and then click on the button saying Click to Validate.

3. As soon as you click on it you will see that the logo of the company to which the credit card belongs will be highlighted in the rest will be hidden.

4. Also below that, you will get a section of results, where the result of the validation process is displayed.

  • Luhn Algorithm: – This will tell you that the card number is passed the validation test of the Luhn algorithm hence is entirely valid.
  • MII Number: – It will tell by the first digit that which company your card actually belongs to.
  • IIN Number: – This will tell the IIN code in the credit card number.
  • PAN & Checksum: – This will differentiate the six digits personal account number and a single digit checksum.

This proves that the credit card number you have entered is a valid credit card of that particular company.

How Does the Mod 10, Modulus 10 or Luhn Algorithm Work?

A significant question that arises is that how the mod 10 algorithm or which is also known as the Luhn algorithm works and how does it validate the credit card number to be real?

Basically, the Mod 10 algorithm is a simple formula to check checksum and is a simple way to validate a majority of identification numbers like the credit card numbers, IMEI numbers, Canadian Social Insurance number, Greek social security number (AMKA) and National provider identifier number of US.

History of Luhn Algorithm

This algorithm was created by Hans Peter Luhn who’s an IBM scientist and is described in the US patent no. 2,950,048. It was filed on 6th of January in 1954 and was granted on 23rd of August in 1960.

Working of Luhn Formula

Let us understand the working of the modern algorithm by taking an example.

1. Choose a random account number like here we choose 7992739871. Add a check digit at the end of the account number, making it to be 7992739871X.

2. Add the details in a table as mentioned below:

Working of Luhn Algorithm

3. Now, sum of all the digits in the third row will be 67+x.

4. The check digit i.e. x is obtained by calculating the sum of non-check digits & then computing 9 times that value modulo 10 i.e. (in equation form, ((67 × 9) mod 10)). So, in short:

✅ Compute the sum of non-check digits i.e. 67.

✅ Multiply it by 9 (603).

✅ Unit digit is the check digit. Thus, x=3

5. Thus, after we attain the check digit, the valid account number is read as
79927398713.

Is This Online Credit Card Validator Tool Safe to Use?

Of course, Yes! the credit card validator checks for the Major Industry Identifier, Personal Account Number and Issuer Identification Number which is used just to validate and tell you that the credit card number that is you and that is valid or not. You can find the details information about MII in the table given below:

MII Digit
Category
0
ISO/TC 68 and other industry assignments
1
Airlines
2
Airlines, financial and other future industry assignments
3
Travel and entertainment
4
Banking and financial
5
Banking and financial
6
Merchandising and banking/financial
7
Petroleum and other future industry assignments
8
Healthcare, telecommunications and other future industry assignments
9
For assignment by national standards bodies

So according to the table:

✅ 4 for Visa – Banking and financial
✅ 5 for MasterCard – Banking and financial
✅ 3 for Discover card – Travel and entertainment

We Do Not Store Credit Card Numbers

Also, our website do not store any data which means none of the credit card numbers that you enter is saved. Because of security reasons and copyright issues these websites are not allowed to collect any credit card number that is entered by the customer itself. Thus, this Credit Card Validator is proved to be a safe tool.

Credit Card Validator is a free online tool to validate credit card details including Card Brand, BIN details, Luhn Validation, Country and Issuing Bank.

What is the Credit Card Validator?

The Credit Card Validator tool is to help you in checking the valid credit card and debit card numbers which you can use at various websites.

The tool provides you with all the details of the card which you can verify and ensure that your card is valid.

Our tool has Luhn Algorithm checker, which will check your card number against the Luhn Algorithm for validating. Also, we check it for Checksum Validation.

The Credit Card Validator checks the Major Industry Identifier (MII), Issuer Identification Number (IIN), Personal Account Number (PAN), Luhn and Checksum Validation of the card details that you've entered.

You can manually check the Issuer Identification Number (IIN) table below to verify the credit/debit card number you have.

Uses of Credit Card Validator:

You can get help from this Credit Card Validator tool to check the validation of the credit or debit card number you have.

These days many of the platforms ask you to enter your card details at the time of signup. If you don't have a credit card or don't want to share your card details there, you can use our credit card generator to get the valid credit card number.

How to use the Credit Card Validator?

Follow the given steps and check the validity of the credit/debit card number you have:

  • First, you need to have a credit/debit card number ready with you to verify.
  • Enter the number you have got in the provided field of the tool.
  • Now click on the Validate button.
  • Credit Card Validator will show you the details of the card.

Do we keep these credit card numbers?

No! The credit/debit card number(s) entered by you in our Validator is entirely anonymous. However, we do not store these card details for security reasons.

Валидатор кредитных карт - это бесплатный онлайн-инструмент для проверки данных кредитной карты, включая бренд карты, данные BIN , проверку Luhn, страну и банк-эмитент.

Что такое валидатор кредитных карт?

Инструмент проверки кредитных карт поможет вам проверить действительные номера кредитных и дебетовых карт, которые вы можете использовать на различных веб-сайтах.

Инструмент предоставляет вам все данные карты, которые вы можете проверить и убедиться, что ваша карта действительна.

В нашем инструменте есть средство проверки Алгоритм Луна, которое будет проверять номер вашей карты на соответствие алгоритму Луна для проверки. Кроме того, мы проверяем его на проверку контрольной суммы.

Средство проверки кредитных карт проверяет основной отраслевой идентификатор (MII), идентификационный номер эмитента (IIN), номер личного счета (PAN), Luhn и проверку контрольной суммы введенных вами данных карты.

Вы можете вручную проверить приведенную ниже таблицу идентификационного номера эмитента (IIN), чтобы проверить номер своей кредитной / дебетовой карты.

Использование валидатора кредитных карт:

Этот инструмент проверки кредитных карт поможет вам проверить правильность номера вашей кредитной или дебетовой карты.

В наши дни многие платформы просят вас ввести данные своей карты во время регистрации. Если у вас нет кредитной карты или вы не хотите сообщать здесь данные своей карты, вы можете использовать наш генератор кредитных карт, чтобы получить действительный номер кредитной карты.

Как использовать Валидатор кредитных карт?

Следуйте приведенным ниже инструкциям и проверьте действительность номера вашей кредитной / дебетовой карты:

  • Во-первых, вам необходимо иметь при себе номер кредитной / дебетовой карты для подтверждения.
  • Введите полученный номер в соответствующее поле инструмента.
  • Теперь нажмите кнопку «Подтвердить».
  • Валидатор кредитных карт покажет вам данные карты.

Сохраняем ли мы эти номера кредитных карт?

Нет! Номер (а) кредитной / дебетовой карты, введенный вами в нашем Валидаторе, является полностью анонимным. Однако мы не храним эти данные карты по соображениям безопасности.


Когда мы общаемся с нашими заказчиками, то, будучи специалистами в этой области, активно используем соответствующую терминологию, в частности слово «распознавание». При этом слушающая аудитория, воспитанная на Cuneiform и FineReader, часто вкладывает в этот термин именно задачу сопоставления вырезанного участка изображения некоторому числу (коду символа), которая в наши дни решается нейросетевым подходом и является далеко не первым этапом в задаче распознавания информации. В начале необходимо локализовать карточку на изображении, найти информационные поля, выполнить сегментацию на символы. Каждая перечисленная подзадача с формальной точки зрения является самостоятельной задачей распознавания. И если для обучения нейронных сетей существуют зарекомендовавшие себя подходы и инструменты, то в задачах ориентации и сегментации каждый раз требуется индивидуальный подход. Если вам интересно узнать про подходы, которые мы использовали при решении задачи распознавания банковской карточки, тогда добро пожаловать под кат!

Распознавание данных с кредитной карты одновременно является высокоактуальной и весьма интересной с точки зрения алгоритмов задачей. Хорошо реализованная программа распознавания пластиковых карт может избавить человека от надобности вводить большую часть данных вручную при осуществлении интернет-платежей и платежей в мобильных приложениях. С точки зрения распознавания, банковская карта — это сложный документ стандартного размера (85,6 × 53,98 мм), выполненный на типовом бланке и содержащий определенный набор полей (как обязательных, так и дополнительных): номер карты, имя держателя карты, дата выдачи, срок действия, номер аккаунта, CVV2-код или его аналог. Часть полей находится на лицевой стороне, другая часть — на обратной. И несмотря на то, что для совершения платежной транзацкии требуется указать только номер карты, практически все платежные системы (в качестве проверки подлинности) дополнительно требуют указать имя держателя карты, срок действия и CVV2-код. Сосредоточимся дальше на задаче распознавания информационных полей лицевой стороны карточки (объективно, она в разы сложнее).

Итак, для совершения интернет-платежа в большинстве случаев требуется распознать на изображении номер карточки, имя держателя и срок действия карты.

В качестве первого этапа необходимо найти координаты углов карточки. Так как геометрические характеристики карточки нам известны (все карточки выполнены строго в соответствии с стандартом ISO 781), то для определения четырехугольника карточки воспользуемся алгоритмом поиска и перебора прямых, про который мы уже рассказывали в одной из наших публикаций на Хабре.

При известном четырехугольнике нетрудно вычислить и применить к изображению проективное преобразование, приводящее изображение карты к ортогональному виду с фиксированным разрешением. Будем считать, что такое исправленное изображение приходит на вход последующим этапам — ориентации и распознаванию конкретных информационных полей.

С точки зрения архитектуры, распознавание трех целевых полей состоит из одних и тех же частей:

  1. Предварительная фильтрация изображения (с целью подавления фона карточки, который бывает удивительно разнообразным).
  2. Поиск зоны (строки) целевого информационного поля.
  3. Сегментация найденной строки на “коробки символов”.
  4. Распознавание найденных “коробок символов” с помощью искусственной нейронной сети (ИНС).
  5. Применение постобработки (использование алгоритма Луна для выявления ошибок распознавания, применение словарей имен и фамилий, проверка даты на валидность и т.п.).
  • номер карточки содержит только цифры;
  • формат номера строго определен для каждого типа платежной карты;
  • геометрическое положение номера не сильно “гуляет” вне зависимости от производителя;
  • существует алгоритм Луна, позволяющий проверить правильность распознавания номера.

Алгоритм распознавания срока действия

Пусть изображение карты у нас уже выправлено (как было сказано выше). Результатом работы алгоритма должны быть 4 десятичные цифры: по две на месяц и год срока окончания действия. Считается, что алгоритм выдал правильный ответ, если полученные 4 цифры совпадают с теми, что изображены на карте. Символ, разделяющий их, не учитывается и может быть любым. Отказ от распознавания трактуется как неверный ответ.

Первым шагом требуется локализовать поле на карточке (в отличии от номера, расположение этого поля не стандартизовано). Использование «метода грубой силы» по всей площади карты – занятие малоперспективное, поскольку соответствующий текстовый фрагмент очень короткий (чаще всего 5 символов), синтаксическая избыточность невелика, и вероятность ложного обнаружения на произвольном фрагменте текста или даже пестром участке фона оказывается неприемлемо большой. Поэтому применим хитрость: будем искать не саму дату, а некоторую информационную зону, расположенную под номером карточки и обладающую устойчивой геометрической структурой.


Рисунок 1. Примеры искомой трехстрочной информационной зоны

Рассматриваемая зона разбивается на три строки, одна из которых часто пустая. Важно, что расположение строки с датой внутри этой зоны хорошо определено. Эта парадоксальная фраза означает следующее: в случае, когда непустых строк в зоне две, их межстрочный интервал либо совпадает с межстрочным интервалом трехстрочных зон, либо примерно равен сумме удвоенного интервала и высоты строки.

Поиск зоны и разбиение ее на 3 строки осложняется наличием на карте фона, который, как мы уже говорили, разнообразный. Для решения этой задачи к изображению карточки применяется комбинация фильтров, целью чего является выделение вертикальных границ букв и гашение остальных деталей изображения. Последовательность фильтров следующая:

  1. Осерение изображения путем усреднения значений цветных каналов с помощью формулы , см. рисунок 2б.
  2. Вычисление изображения вертикальных границ с помощью формулы , см. рисунок 2в.
  3. Фильтрация маленьких вертикальных границ с помощью математической морфологии (конкретно путем применения эрозии с прямоугольным окном размера ), см. рисунок 2г.


Рисунок 2. Предварительная фильтрация изображения кредитной карты: а) исходное изображение, б) изображение в градациях серого в) изображение вертикальных границ, г) фильтрованное изображение вертикальных границ

В нашей реализации для экономии времени морфологические операции реализованы с использованием алгоритма ван Херка. Он позволяет вычислять морфологические операции с прямоугольным примитивом за время, не зависящее от размеров примитива, что позволяет использовать сложные морфологические фильтры большой площади в задачах распознавания документов в режиме реального времени.

После фильтрации интенсивности пикселей обработанного изображения проецируются на вертикальную ось:


где — фильтрованное изображение, — ширина изображения, — квантиль уровня (эта величина используется для порогового отсечения с целью подавить влияние резких шумовых границ, которые как правило возникают из-за наличия нанесенного краской статического текста типа “valid thru” и т.п.).

По полученной проекции теперь возможно найти наиболее вероятное положение строк, предполагая отсутствие горизонтальных границ в межстрочных интервалах. Для этого минимизируем сумму по проекции по всевозможным периодам и начальным фазам из заранее заданного интервала:


Поскольку локальные минимумы , как правило, достаточно выражены и на внешних границах текста, оптимальное значение равняется четырем (подразумевая, что на карте 3 строки, а, следовательно, 4 локальных минимума). В результате мы найдем параметры , задающие центры межстрочных интервалов, а также внешние границы текста (см. рисунок 3).


Рисунок 3. Вид проекции и оптимальные разрезы, выделяющие на ней области трех строк

Теперь область поиска даты можно существенно сократить, одновременно учитывая исходную форму области и найденное на данном изображении положение строк. Для такого пересечения генерируется множество возможных положений подстрок, с которым и будет вестись работа далее.

Каждая из подстрок-кандидатов сегментируется на символы, учитывая, что все символы на таких картах моноширинные. Это позволяет использовать алгоритм динамического программирования для поиска межсимвольных разрезов без распознавания символов (все, что требуется знать — допустимый интервал для ширины символа). Здесь изложим основные идеи алгоритма.

  1. Пусть y нас есть фильтрованное изображение вертикальных границ строки, содержащей дату. Построим проекцию данного изображения на горизонтальную ось. Полученная проекция будет содержать локальные максимумы в местах вертикальных границ (то есть в зоне букв) и минимумы между буквами. Пусть — ожидаемый период, а — максимальное отклонение значения периода.
  2. Будем двигаться слева направо по построенной проекции. Заведем дополнительный массив-аккумулятор, где в каждом элементе будет храниться накопленный штраф. На каждом шаге рассмотрим отрезок аккумулятора . Запишем в качестве текущего значения штрафа сумму значения проекции в точке и минимальное значение штрафа из рассматриваемого отрезка. Дополнительно сохраним индекс предыдущего шага, доставляющего указанный минимум.
  3. Пройдя описанным образом всю проекцию, можем проанализировать массив-аккумулятор штрафов и, благодаря сохранению индексов предыдущих шагов, восстановить все разрезы.

После сегментации на символы, пришло время распознавания с помощью искусственной нейронной сети (ИНС). К сожалению, сколь-нибудь подробное описание этого процесса выходит за рамки данной статьи. Отметим только пару фактов:

  1. Для распознавания используются сверточные нейронные сети, обученные с помощью инструмента cuda-convnet.
  2. Алфавит обученной сети содержит цифры, знаки препинания, пробел и знак не-символа («мусора»).

Конечно, помимо описанного “элементарного” постпроцесса в нашей системе используются и дополнительные контекстно-зависимые методы, описание которых не попало в данную статью.

Результаты работы

Для того, чтобы оценить качество работы нашего SDK, мы собрали базу изображений карточек различных платежных систем, выпущенных разными банками в размере 750 изображений (количество уникальных карточек — 60 штук). На собранном материале получили следующие результаты:

Карта

Отчёт о тестировании: Валидация номера банковской карты

08.07.2021 - 10.07.2021 было проведено белоящичное тестирование кода приложения "Валидация номера банковской карты".

На тестирование затрачено: 5 часов

В результате тестирования выявлены следующие дефекты (смотри Issues данного репозитория):

Описание процесса тестирования

В процессе тестирования использовались следующие артефакты*:

Название: Введение валидного номера банковской карты (бэкэнд)

Steps to reproduce:

  1. Копировать код (Задача 1) в IntelliJ IDEA Community
  2. Ввести валидние данные карты (см. валидные тестовые данные ниже) в 4-й строке кода String number в кавычки (вместо исходного номера 5351719427810741)
  3. Запустить код

Expected Result: Result is OK

Название: Введение невалидного номера банковской карты (бэкэнд)

Steps to reproduce:

  1. Копировать код (Задача 1) в IntelliJ IDEA Community
  2. Ввести невалидние данные карты (см. невалидные тестовые данные ниже) в 4-й строке кода String number в кавычки (вместо исходного номера 5351719427810741)
  3. Запустить код

Expected Result: Result is FAIL

Примечание: справа от номера карты указан Actual Result при исполнении соответсвующего тестового сценария.

Валидные тестовые данные с ожидаемым результатом Result is OK:

  1. Фейковые валидные номера банковских карт различных платежных систем в соответсвии с формулой Luhn

1.1 МИР:

1.2. VISA:

1.3. MasterCard:

1.4. American Express (AMEX):

1.5. Discover:

1.6. JCB:

1.7. Diners Club - North America:

1.8. Diners Club - Carte Blanche:

1.9. Diners Club - International:

1.10. Maestro:

1.11. Visa Electron:

1.12. InstaPayment:

Невалидные данные с ожидаемым результатом Result is FAIL:

Автор статьи

Куприянов Денис Юрьевич

Куприянов Денис Юрьевич

Юрист частного права

Страница автора

Читайте также: