В обработке приведена реализация проверки контрольной цифры IMEI (International Mobile Equipment Identity) алгоритмом Luhn.
Обработка предназначена для программиста в ознакомительных целях.
Сам алгоритм:
International Mobile Equipment Identity – Structure
– 15 decimal digits: 14 payload digits + 1 Luhn check digit
– First 8 digits = Type Allocation Code (TAC)
– Next 6 digits = Manufacturer’s serial number
– Last digit = Check Digit (calculated via the Luhn algorithm) en.wikipedia.org
The check digit is validated in three steps:
1. Starting from the right, double every other digit (e.g., 7 → 14).
2. Sum the digits (e.g., 14 → 1 + 4).
3. Check if the sum is divisible by 10.
Conversely, one can calculate the IMEI by choosing the check digit that would give a sum divisible by 10. For the example IMEI 49015420323751?,
IMEI 4 9 0 1 5 4 2 0 3 2 3 7 5 1 x
Double everyother 4 18 0 2 5 8 2 0 3 4 3 14 5 2 x
Sum digits 4 + (1 + 8) + 0 + 2 + 5 + 8 + 2 + 0 + 3 + 4 + 3 + (1 + 4) + 5 + 2 + x = 52 + x
To make the sum divisible by 10, we set x = 8, so the complete IMEI becomes 490154203237518.
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.269
Вступайте в нашу телеграмм-группу Инфостарт