🔢

Алгоритм Луна

Проверка и генерация контрольной цифры по алгоритму Луна (mod 10)

Алгоритм Луна онлайн — проверка номера карты, IMEI и контрольной цифры

Онлайн-калькулятор алгоритма Луна (Luhn algorithm) — универсальный инструмент для проверки и валидации числовых идентификаторов. Алгоритм Луна, также известный как формула Луна, модуль 10 или mod 10, представляет собой простую контрольную формулу, используемую для проверки правильности разнообразных идентификационных номеров. Формула была изобретена учёным-информатиком Гансом Петером Луном (Hans Peter Luhn) в 1954 году и запатентована корпорацией IBM. Сегодня алгоритм Луна является международным стандартом ISO/IEC 7812 и применяется повсеместно в банковской сфере, телекоммуникациях и других отраслях.

Наш калькулятор позволяет проверить валидность номера банковской карты (Visa, Mastercard, МИР, American Express, Maestro, UnionPay, JCB, Diners Club, Discover), проверить корректность IMEI-номера мобильного устройства, а также валидировать любой произвольный номер, использующий контрольную цифру по алгоритму Луна. Инструмент автоматически определяет тип вводимого номера и платёжную систему банковской карты по первым цифрам (BIN/IIN — Bank Identification Number). Все вычисления выполняются исключительно в вашем браузере — данные не передаются на сервер, что гарантирует полную конфиденциальность и безопасность.

Помимо проверки, калькулятор алгоритма Луна предоставляет функцию генерации валидных номеров для тестирования программного обеспечения, а также пакетную проверку нескольких номеров одновременно. Для каждого проверенного номера доступна детальная пошаговая визуализация алгоритма — от удвоения нечётных позиций до итоговой контрольной суммы. Это делает инструмент незаменимым как для разработчиков, тестировщиков и QA-инженеров, так и для обычных пользователей, желающих проверить правильность ввода номера карты или IMEI.

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

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

Шаг 1. Начиная со второй цифры справа (предпоследней) и двигаясь влево, удваиваем каждую вторую цифру номера. Если результат удвоения превышает 9, вычитаем из него 9 (эквивалентно сложению цифр двузначного числа).

Шаг 2. Складываем все полученные цифры — как удвоенные, так и неизменённые — в общую контрольную сумму.

Шаг 3. Если итоговая сумма делится на 10 без остатка (сумма mod 10 = 0), номер признаётся валидным. В противном случае номер содержит ошибку.

Для генерации контрольной цифры используется обратный процесс: вычисляется сумма всех цифр без контрольной, а затем определяется такая цифра, при добавлении которой общая сумма становится кратной 10. Формула: контрольная цифра = (10 − (сумма mod 10)) mod 10.

Инструмент проверки по алгоритму Луна востребован широким кругом пользователей. Веб-разработчики и программисты применяют его для валидации форм оплаты, тестирования платёжных шлюзов и проверки корректности генерации номеров в коде. QA-инженеры и тестировщики используют генератор валидных номеров для создания тестовых данных при проверке интернет-магазинов, банковских приложений и платёжных систем. Специалисты по безопасности проверяют корректность реализации алгоритма Луна в различных системах. Обычные пользователи могут быстро проверить, правильно ли они ввели номер банковской карты при онлайн-оплате, или убедиться в корректности IMEI своего смартфона. Студенты и преподаватели изучают принципы контрольных сумм и обнаружения ошибок на наглядном примере алгоритма Луна с пошаговой визуализацией.

  • Номера банковских карт — все карты Visa, Mastercard, МИР, American Express, Maestro и других платёжных систем проверяются алгоритмом Луна. Последняя цифра номера карты является контрольной и рассчитывается по формуле mod 10.
  • IMEI мобильных устройств — международный идентификатор мобильного оборудования (International Mobile Equipment Identity) из 15 цифр содержит контрольную цифру, вычисленную по алгоритму Луна.
  • Номера социального страхования — в Канаде номер Social Insurance Number (SIN) валидируется по формуле Луна.
  • ISIN-коды ценных бумаг — международные идентификационные коды ценных бумаг (International Securities Identification Number) используют алгоритм Луна для проверки.
  • Штрихкоды и идентификаторы — множество систем штрихкодирования и серийных номеров применяют модуль 10 для контроля ошибок ввода.
  • СЕДОЛ (SEDOL) — идентификационный код ценных бумаг Лондонской фондовой биржи использует модифицированную версию алгоритма Луна.
  • Коды провайдеров NPI — в системе здравоохранения США National Provider Identifier проверяется по алгоритму Луна.
  • Мгновенная проверка любых номеров по алгоритму Луна — банковские карты, IMEI, произвольные числовые последовательности
  • Автоматическое определение платёжной системы карты: Visa, Mastercard, МИР, American Express, Maestro, UnionPay, JCB, Discover, Diners Club
  • Пошаговая визуализация расчёта — наглядная демонстрация каждого этапа алгоритма Луна с таблицей удвоений и контрольной суммой
  • Генерация валидных номеров для тестирования — создание любого количества номеров с заданным префиксом и длиной
  • Пакетная проверка до 100 номеров одновременно — загрузка списка и массовая валидация
  • Маскировка конфиденциальных данных — возможность скрыть средние цифры номера для безопасности
  • Определение корректной контрольной цифры — если номер невалиден, калькулятор покажет, какой должна быть правильная последняя цифра
  • Копирование результатов проверки в буфер обмена одним нажатием
  • Работа полностью в браузере — без отправки данных на сервер, 100% конфиденциальность

Определение платёжной системы по номеру карты (BIN/IIN)

Первые цифры номера банковской карты (BIN — Bank Identification Number, или IIN — Issuer Identification Number) определяют платёжную систему и банк-эмитент. Наш калькулятор автоматически распознаёт следующие платёжные системы:

    💡

    Пример: проверка номера банковской карты перед вводом

    1

    Пользователь вводит номер карты в интернет-магазине

    2

    Сайт применяет алгоритм Луна для первичной валидации

    3

    Если контрольная сумма не сходится — выдаёт ошибку до отправки запроса в банк

    4

    Экономит ресурсы на заведомо некорректных запросах

    5

    Снижает нагрузку на платёжный шлюз и ускоряет UX

    🧠

    Знаете ли вы?

    💳

    Алгоритм Луна изобретён Хансом Петером Луном из IBM в 1954 году

    🔢

    Алгоритм используется для проверки номеров кредитных карт, IMEI и других идентификаторов

    Алгоритм ловит 98% одиночных ошибок ввода и большинство транспозиций

    Luhn — это чек-сумма, а не шифрование — он только проверяет корректность

    🌐

    ISO/IEC 7812 стандартизирует формат номеров платёжных карт с использованием Луна

    🎯

    Контрольная цифра — последняя цифра в номере, которая делает сумму кратной 10

    Справочная таблица

    Платёжная системаНачальные цифры (BIN)Длина номера
    Visa413, 16, 19
    Mastercard51–55, 2221–272016
    МИР2200–220416, 18, 19
    American Express34, 3715
    Maestro5018, 5020, 5038, 6304, 6759…12–19
    UnionPay62, 8116–19
    JCB3528–358916–19
    Discover6011, 644–649, 6516–19
    Diners Club300–305, 36, 3814, 16, 19
    ⚠️

    Важно знать

    Алгоритм Луна только проверяет математическую корректность номера, но не подтверждает, что карта существует или активна. Реальную валидацию делает только банк при обработке транзакции.

    Как проверить номер по алгоритму Луна — пошаговая инструкция

    1

    Выберите тип номера

    Укажите тип проверяемого номера: банковская карта, IMEI устройства, произвольный номер или оставьте автоопределение. Калькулятор автоматически распознает платёжную систему карты (Visa, Mastercard, МИР и другие) по первым цифрам номера.

    2

    Введите или вставьте номер

    Введите номер вручную или вставьте его из буфера обмена. Допускаются пробелы и дефисы — калькулятор автоматически извлечёт только цифры. Для IMEI введите 15 цифр, для банковской карты — от 13 до 19 цифр.

    3

    Получите результат проверки

    Нажмите кнопку "Проверить" или клавишу Enter. Мгновенно получите результат: валидный или невалидный номер, контрольную сумму, определённую платёжную систему. При необходимости нажмите "Показать шаги расчёта" для детальной визуализации алгоритма Луна.

    Примеры использования проверки по алгоритму Луна

    💳 Проверка номера банковской карты при оплате

    При вводе номера банковской карты в интернет-магазине легко допустить ошибку — пропустить цифру или переставить две соседние. Алгоритм Луна мгновенно выявляет подобные ошибки. Введите номер карты в калькулятор: если статус "невалидный", значит где-то допущена ошибка ввода. Калькулятор также покажет правильную контрольную цифру, что поможет быстро найти опечатку.

    📱 Проверка IMEI смартфона

    При покупке б/у смартфона важно проверить подлинность IMEI. Наберите *#06# на телефоне, чтобы узнать IMEI, затем введите 15-значный код в калькулятор. Если номер невалиден, это может указывать на изменённый или поддельный IMEI, что является серьёзным предупреждающим сигналом. Калькулятор автоматически определит, что введён именно IMEI.

    🧪 Генерация тестовых данных для разработки

    Разработчик интернет-магазина тестирует форму оплаты и платёжный шлюз. С помощью генератора он создаёт 20 валидных номеров с префиксом 4276 (Visa) длиной 16 цифр. Все сгенерированные номера гарантированно проходят проверку по алгоритму Луна, что позволяет тестировать валидацию формы без использования реальных карточных данных.

    📋 Массовая проверка базы данных

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

    Часто задаваемые вопросы

    Что такое алгоритм Луна?
    Это простой математический алгоритм для проверки контрольной суммы идентификационных номеров — банковских карт, IMEI устройств, социальных номеров в некоторых странах.
    Кто изобрёл алгоритм Луна?
    Алгоритм разработал инженер IBM Ханс Петер Лун в 1954 году. Патент был выдан в 1960, а сегодня алгоритм является общественным достоянием.
    Как работает алгоритм?
    Начиная справа, каждая вторая цифра удваивается. Если результат больше 9, из него вычитается 9. Затем все цифры складываются. Если сумма кратна 10, номер корректен.
    Где применяется алгоритм Луна?
    В проверке номеров кредитных и дебетовых карт (Visa, Mastercard, American Express), IMEI телефонов, канадских номеров социального страхования и других идентификаторов.
    Является ли алгоритм безопасным?
    Нет, это не шифрование, а только проверка ошибок ввода. Алгоритм не защищает от злоумышленников — он лишь отсеивает очевидно некорректные номера.
    Почему алгоритм Луна так популярен?
    Он простой в реализации, быстрый и эффективный для обнаружения наиболее частых ошибок — опечаток и перестановки соседних цифр.

    Полезная информация

    Калькулятор алгоритма Луна постоянно обновляется и дополняется новыми функциями.

    Все расчёты выполняются локально в вашем браузере. Данные не передаются на сервер, не сохраняются и не обрабатываются сторонними сервисами. Инструмент соответствует стандарту ISO/IEC 7812 для валидации номеров банковских карт и использует каноническую реализацию алгоритма Луна (mod 10).

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

    Комментарии (1)

    Был ли полезен этот инструмент?
    Руслан Авдеев (автор проекта)1 янв. 2024 г., 00:00
    🎉 Спасибо, что используете наши инструменты! Все инструменты на ToolFox полностью бесплатны и постоянно улучшаются. 📝 Пожалуйста, оставляйте комментарии: - Если инструмент работает некорректно - Если есть идеи по улучшению - Поделитесь своим опытом использования 👍 Ставьте лайки/дизлайки - это помогает мне понять, какие инструменты нуждаются в доработке. Я обновляю сайт каждую неделю на основе вашей обратной связи. ⭐ Если вам нравится ToolFox — буду благодарен за отзыв о сайте в Яндекс.Браузере (нажмите на ⋮ → «Оценить сайт» в панели браузера). Это помогает другим людям находить наши инструменты! 😊 Также вы можете написать мне напрямую в Telegram: @avdeevrus Все доработки и улучшения по вашим пожеланиям делаю бесплатно! Благодарю за доверие и использование ToolFox! 🚀

    🔢Похожие инструменты