Что такое ИИН и как проверить его корректность

Печать: Шрифт: Абв Абв Абв
eric_land 29 Июня 2011 в 17:26:07
ИИН - Индивидуальный Идентификационный Номер, 12-значный цифровой код, который присваивается физическому лицу один раз и пожизненно. с 1 января 2012 года заменит РНН и СИК.



Расшифровка ИИН :
первые 6 разрядов - это дата рождения ггммдд, то есть 12 августа 1985 года в ИИНе будет 850812
7 разряд отвечает за век рождения и пол. Если цифра нечетная - пол мужской, четная - женский. 1,2 - девятнадцатый век, 3,4 - двадцатый, 5,6 - двадцать первый.
8-11 разряды - заполняет орган Юстиции.
12 разряд - контрольная цифра, которая расчитывается по определенному алгоритму

Проверка корректности ИИН :
Вспомогательная проверка. Строится на расшифровке.
вычленяем дату рождения из ИИН и проверяем её. Если дата неверна, то ИИН может быть не верен
если 7 разряд равен 0 или больше 6, то ИИН может быть не верен

Почему я пишу "может быть не верен", да потому что все решает человеческий фактор! Руки у операторов не всегда откуда надо растут, в итоге появляются ИИН с неправильно написанными датами, вместо 850812 например напишут 120885. Или опечатаются где-нибудь.

Основная проверка. По контрольной цифре, 12 разряду. Алгоритм формирования
Формируем сумму. Сумма произведения порядка разряда на его значение. То есть для 850812 сумма начнется с (1*8+2*5+3*0+4*8+5*1+5*2+...). Берем остаток от делния суммы на 11. если остаток оказывается равен 10, то идем на второй шаг. Если не равен 10, то сравниваем контрольный разряд с остатком. Если равны - ИИН корректный.
Сюда мы попадаем если в результате первого шага мы получили остаток 10. Здесь мы тоже будем суммировать произведения значений разрядов, только на этот раз не с порядковыми номерами, а с весами разрядов. Вес формируется следующим образом - остаток от деления на 11 суммы (порядковый номер разряда + 2). То есть для 850812, первый вес равен 3, второй 4 и так далее. Если вес оказывается равным 0, то вес приравнивают к 11. ну а дальше также. берем остаток от деления получившейся суммы на 11, если получаем 10, то данный ИИН не используется. Если не 10 сравниваем с контрольным разрядом.

В общем, вот так это все выглядит на php :


<?php
function valid_nn($nn)
{
$s = 0;
for (
$i = 0; $i < 11; $i++)
{
$s = $s + ($i + 1) * $nn{$i};
}
$k = $s % 11;
if (
$k == 10)
{
$s = 0;
for (
$i = 0; $i < 11; $i++)
{
$t = ($i + 3) % 11;
if(
$t == 0)
{
$t = 11;
}
$s = $s + $t * $nn{$i};
}
$k = $s % 11;
if (
$k == 10)
return
false;

return (
$k == substr($nn,11,1));
}
return (
$k == substr($nn,11,1));
}


Кстати, алгоритм для проверки контрольного разряда подходит и к БИНам.
Комментарии, по рейтингу, по дате
  Rawdeal 29.06.2011 в 20:52:32   # 131573
  Гость 30.06.2011 в 10:07:01   # 131612
в Казахстане враза "который присваивается физическому лицу один раз и пожизненно." звучит комично!!
за сколько там лет независимости столько "пожизненных" было. и электронные карты для ГАИ, и всякие такм РНН. тут не знаешь при каком режиме и при каких законах завтра проснешься, а они "пожизненно!!!"
  zloi 30.06.2011 в 11:16:19   # 131627
Круто, что то, что я пишу, не мне одному надо ))

А по поводу пожизненности фиг с ним, но ИИН классная штука для разработчиков информационных систем, потому что его можно использовать в качестве уникального идентификатора физического лица. ИИН = человек. и все, можно не париться. Например в России нет идентификатора, который бы можно было так использовать. ИНН (аналог нашего РНН) у них меняется, номер паспорта тоже меняется. В итоге им приходится синтезировать какие-то искуственные идентификаторы. Так что ИИН это очень удобно.
  timastar 30.06.2011 в 15:34:43   # 131680
очередной сбор денег с населения ,Я ТАК ДУМАЮ!
Добавить сообщение
Чтобы добавлять комментарии зарeгиcтрирyйтeсь