Оглавление:
Определение - Что означает формула Луна?
Формула Луна - это простая формула контрольной суммы, которая используется при проверке различных идентификационных номеров, таких как номера кредитных карт, номера социального страхования, номера IMEI и многие другие. Алгоритм проверяет число по включенной контрольной цифре в самом номере, обычно последней цифре. Формула Луна в настоящее время находится в открытом доступе и широко используется в различных отраслях промышленности и определена в ИСО / МЭК 7812-1.
Формула Луна также известна как алгоритм Луна, алгоритм модуля 10 или алгоритм 10.
Техопедия объясняет формула Луна
Формула Luhn была разработана ученым IBM Хансом Питером Луном, который подал патент на формулу в 1954 году, которая была выдана в 1960 году. Формула была разработана не как криптографически безопасная хеш-функция, а скорее как простой способ защитить от случайных ошибок при создании уникальных идентификационных номеров. Многие правительственные учреждения и частные учреждения использовали формулу для отличия действительных номеров от ошибочных, неправильных или просто мошеннических номеров.
Формула используется для проверки последовательности чисел путем проверки правильности включенной контрольной цифры. Эта контрольная цифра обычно прикрепляется к частичному номеру для его завершения.
Следующий процесс - генерация контрольной цифры:
- Начиная с крайней правой цифры, удвойте значение каждой второй цифры.
- Если полученный результат первого шага выше 9, добавьте две цифры (например, 5 × 3 = 15, 1 + 5 = 6). Если результат 9 или меньше, сохраните номер.
- Возьмите сумму всех цифр.
- Умножьте сумму на 9 и возьмите «по модулю 10» суммы; результат - контрольная цифра.
Пример: номер серии 927638965
9 |
2 |
7 |
6 |
3 |
8 |
9 |
6 |
5 контрольная цифра |
9 |
4 |
7 |
12 |
3 |
16 |
9 |
12 |
|
9 |
4 |
7 |
3 |
3 |
7 |
9 |
3 |
сумма = 45; 45 × 9 = 405 (мод 10) = 5 |
Чтобы проверить, является ли число действительным, просто следуйте алгоритму, исключая контрольную цифру, и, если такой же результат получен с контрольной цифрой, то номер действителен по формуле Луна. Однако этот алгоритм не очень надежен и способен обнаруживать только однозначные ошибки и транспонирование соседних чисел, за исключением транспонирования двузначной последовательности от 09 до 90. Более сложные алгоритмы, такие как алгоритм Верхоффа и алгоритм Дамма, способны обнаружить больше ошибок транскрипции.
