Що таке ІІН і як перевірити його коректність - werther blog - s
Топік буде важливий для казахстанських розробників, тому що в інтернеті по цій темі знайшов тільки один незрозумілий топік.
Перевірка коректності ІІН:
Допоміжна перевірка. Будується на розшифровці.
- виокремлює дату народження з ІІН і перевіряємо її. Якщо дата невірна, то ІІН може бути не вірний
- якщо 7 розряд дорівнює 0 або більше 6, то ІІН може бути не вірний
Чому я пишу «може бути не вірний», та тому що все вирішує людський фактор! Руки у операторів не завжди звідки треба ростуть, в результаті з'являються ІІН з неправильно написаними датами, замість 850812 наприклад напишуть 120885. Або опечатали десь.
Основна перевірка. За контрольної цифри, 12 розряду. алгоритм формування
1. Формуємо суму. Сума твори порядку розряду на його значення. Тобто для 850812 сума почнеться з (1 * 8 + 2 * 5 + 3 * 0 + 4 * 8 + 5 * 1 + 5 * 2 + ...). Беремо залишок від Делні суми на 11. якщо залишок виявляється дорівнює 10, то йдемо на другий крок. Якщо не дорівнює 10, то порівнюємо контрольний розряд із залишком. Якщо рівні - ІІН коректний.
2. Сюди ми потрапляємо якщо в результаті першого кроку ми отримали залишок 10. Тут ми теж будемо підсумовувати твори значень розрядів, тільки на цей раз не з порядковими номерами, а із зсувом порядкового номера, своєрідними вагами. Вага формується таким чином - залишок від ділення на 11 суми (порядковий номер розряду + 2). Тобто для 850812, перший вага дорівнює 3, другий 4 і так далі. Якщо вага виявляється рівним 0, то вага прирівнюють до 11. ну а далі також. беремо залишок від ділення отриманої суми на 11, якщо отримуємо 10, то даний ІІН не використовується. Якщо не 10 порівнюємо з контрольним розрядом.
Також цей алгоритм для перевірки контрольного розряду підходить і до БІНам.