Я разрабатываю набор инструментов на Java для проверки и работы с кредитными картами. Пока у меня есть поддержка:
проверка ЛУН.
Проверка даты (простое истечение срока действия ).
Проверка длины кода карты (CVV, CVC, CID )на основе бренда (Visa, MasterCard и т. д. ).
Проверка длины номера кредитной карты (на основе бренда ).
Проверка БИН/ИИН (по базе действительных номеров ).
Скрытие цифр (425010******1234)
Чтобы сделать набор инструментов немного более полным, я хотел бы создать генератор случайных чисел для кредитных карт на основе карт разных марок. Надеюсь, эта функциональность ()сделает мои тестовые примеры немного более надежными.
По сути, я хотел бы иметь возможность генерировать числа, которые:
ЛУН действителен
Действительно на основе префиксов бренда
Действителен на основе номеров префиксов БИН/ИИН
Для действительных номеров карт БИН / ИИН я думаю найти случайный номер БИН / ИИН из базы данных (на основе бренда, конечно ), а затем добавить оставшиеся цифры, используя Random
. Очевидно, что в большинстве случаев это будет неверно, и мне придется увеличивать одну из цифр, пока она не пройдет проверку LUHN.
Кажется, я не могу придумать лучшего способа. Возможно, кто-то мог бы предложить что-то немного умнее...?
С нетерпением ждем ваших предложений! Заранее спасибо!:)