PHP. Расшифровка украинских ИНН

Что такое ИНН (Идентификационный номер налогоплательщика)? Это не просто набор цифр. Помимо уникального идентификационного номера в нем содержится информация о дате рождения и поле его владельца. И эту информацию можно расшифровать.

В некоторых проектах необходимо контролировать правильность данных, введенных пользователем. Для того, чтобы проверить дату рождения пользователя, можно запросить ИНН, расшифровав который можно сравнить дату, введенную пользователем с датой, зашифрованной в ИНН. Кстати, в банках так и делают. Более того, можно контролировать правильность самого ИНН, так как в нем содержится контрольная цифра.

С помощью PHP можно написать функцию, которая будет возвращать расшифрованные данные в виде массива.

function ParseINN($inn = null)
{
    if ( !preg_match('/^d{10}$/', $inn) || empty($inn) ) return false;
    $result = array();
    $result['inn'] = $inn;
    $result['sex'] = (substr($inn, 8, 1) % 2) ? 'm' : 'f';       
   
    $split = str_split($inn);
    $summ = $split[0]*(-1) + $split[1]*5 + $split[2]*7 + $split[3]*9 + $split[4]*4 + $split[5]*6 + $split[6]*10 + $split[7]*5 + $split[8]*7;
    $result['control'] = (int)($summ - (11 * (int)($summ/11)));       
   
    $result['status'] = ($result['control'] == (int)$split[9]) ? true : false;

    $inn = substr($inn, 0, 5);
    $normal_date = date('d.m.Y', strtotime('01/01/1900 + ' . $inn . ' days - 1 days'));
    list($result['day'], $result['month'], $result['year']) = explode('.', $normal_date);
    return $result; }

Первые пять цифр кода — количество дней, прошедших с 1 января 1900 года до дня рождения владельца. Следующие четыре цифры — порядковый номер человека родившегося в этот день. Девятая цифра означает пол. Последний символ — контрольное число. Алгоритм вычисления можно узнать из вышеприведенного кода.

Интересное

Git и Bitbucket
Git – это распределенная система контроля версий. Пожалуй, на этом теория заканчивается, так как...
Отзыв о FirstVDS
При покупке хостинга у FirstVDS мне предложили скидку за годный отзыв в блоге или на форуме....
Проверка сайта на вирусы
Если пользоваться привычной терминологией, то web вирусы не являются вирусами в традиционном...
Project Glass — Очки будущего от Google
Компания Google представила суперсовременные «очки дополненной реальности» или Project Glass. Впрочем,...

Комментарии

  • Виталик М
    17.05.2012 в 14:24
    Я юзаю онлайн сервис для расшифровки инн http://decode.org.ua/inn, быстро и без заморочек.
    Ошибок не замечено.
    ответить
  • Михаил Непойман
    18.05.2012 в 06:43

    Уважаемый, а вас не смущает тот факт, что ИНН остаются на сервере онлайн сервиса вместе с вашим IP? Вот скажите, зачем где-попало разбрасываться личной информацией?

    ответить

Чтобы оставлять комментарии, авторизируйтесь

Войти через OpenID

рейтинг2+-
Популярные
Точки входа
Наверх