В одном из проектов требовалось, при регистрации пользователя по ИНН проверять дату его рождения, а точнее при вводе ИНН автоматически записывать дату рождения в нужное поле.
Как оказалось это делается очень просто. Ведь ИНН — это не просто набор цифр. Помимо уникального идентификационного номера в нем содержится информация о дате рождения и поле его владельца. И эту информацию можно расшифровать.
Кроме определения даты рождения по ИНН, также можно проверять правильность ввода самого идентификационного номера, так как в нем содержится контрольная цифра, которая расчитывается по определенному алгоритмы.
Первые 5 цифр в ИНН у обычных граждан Украины означают дату рождения, в виде количества дней прошедших с 1 января 1900 г. Это не секрет, в остальных цифрах защифрован пол, цифры придающие индивидуальность номеру и контрольные числа
В общем вот php код, который занимается расшифровкой.
На выходе у нас будет массив, который будет содержать следующие данные:
- inn — введенный ИНН
- sex — Пол. m — мужской, f — женский
- control — контрольная сумма, для проверки ИНН
- status — результат проверки контрольной суммы. Если true — то ИНН корректный, false — не корректный
- day — день рождения
- month — месяц рождения
- year — год рождения
- str_month — русское название месяца
Но стоит сказать, что данный метод не всегда правильно работает и каждого метода есть исключения. Так что имейте это ввиду.