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