Исходников нету к сожалению, а реверсить плохо умею.Где можно с алгоритмом вычисления познакомится? Если не жутко секретно конечно.
Нужно прогадля СИКа и РНН
#29
Отправлено 01.07.2008, 21:55:23
Ну да ладно - ещё в далёком 2006 некто Timson [X-CODE] http://vse.kz/index.php?showuser=20302 выложил свой реверс той dll-ки - смотреть тут http://vse.kz/index....c...t&p=2759394
#32
Отправлено 02.07.2008, 09:00:27
var intLength, intWeight, intControl, i, x : integer; intSum : Extended; strRNN : string; begin strRNN := Edit1.Text; intLength := StrLen(PChar(string(Edit1.Text))); if intLength = 12 then begin Label1.Caption := 'РНН верен!'; intControl := strtoint(strRNN[12]); for x := 1 to 10 do begin intSum := 0; intWeight := x - 1; for i := 1 to 11 do begin intWeight := intWeight + 1; if intWeight = 11 then intWeight := 1; intSum := intSum + intWeight * strtoint(strRNN[i]); end; intSum := intSum - round(intSum / 11) * 11; if intSum < 10 then begin if intSum <> intControl then Label1.Caption := 'РНН неверен!'; break; end; end; end else Label1.Caption := 'Неверная длина РНН'; end;
сам же РНН устроен просто ...
первые две цифры - код областной инспекции;
следующие две - код районной инспекции;
пятая - тип лица ... для юридических всегда 0
от 6 до 11 - порядковый номер в инспекции выдвавшей РНН
и последняя 12 - контрольное число для проверки на корректность... которое вычисляется по следующему алгоритму
Алгоритм вычисления контрольного разряда РНН
1. каждому разряду РНН, кроме 12-го, присваивается вес от 1 до 10, то есть получается что у 11-го разряда вес равен 1.
2. вычисляется сумма произведений значений каждого разряда на его вес
3. сумма делится на 11 и округляется
4. вычисляется разница между суммой произведений и целочисленным вхождением по модулю 11 в эту сумму
5. если полученная разница меньше 10, то она является значением контрольного разряда ... иначе все начинается со второго разряда... и так пока разница не будет меньше 10 ... если для всех 11 разрядов такой разницы не найдется, то данный РНН не присваивается...
#33
Отправлено 05.07.2008, 19:25:37
Ещё слыхал, собираются заместо СИК и РНН вводить другой код. Он типа будет один и заменять оба. Действительно непонятки сейчас, СИКов в течении жизни у человека может быть несколько, что не очень удобно. А тут вроде будет один код, неизменный, вне зависимости от имущественного, гражданского, социального положения человека. Что более разумно.
Но, опять придется базы апдейтить и бизнес логику менять.
#34
Отправлено 11.07.2008, 09:56:56
IIN ИИН по другому Индивидуальный Индентификационный Номер. Он есть в номере удостоверения, ниже даты рождения.В командировке, на досуге, закатал алгоритмы генерации СИК и проверки РНН в DLL под C#. Спасибо за сырцы на Delphi всем энтузиастам.
Ещё слыхал, собираются заместо СИК и РНН вводить другой код. Он типа будет один и заменять оба. Действительно непонятки сейчас, СИКов в течении жизни у человека может быть несколько, что не очень удобно. А тут вроде будет один код, неизменный, вне зависимости от имущественного, гражданского, социального положения человека. Что более разумно.
Но, опять придется базы апдейтить и бизнес логику менять.
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0