Composition
Anycodewithacheckcodeiscomposedoftwoparts:thebodycodeandthecheckcode(suchastheorganizationcode).Thebodycodeisthenumberthatrepresentsthecodeobject.Theverificationcodeisanumberattachedtothebodycodetoverifytheaccuracyofthebodycodeduringtheinputprocess.Eachbodycodecanonlyhaveonecheckcode,andthecheckcodeisobtainedthroughaprescribedmathematicalrelationship.
Principleofverification
Thesystemispresetwithaverificationprogramcompiledaccordingtotheverificationformuladerivedfromtheverificationmethod.Whenthecodewiththeverificationcodeisinputintothesystem,Thesystemusestheverificationprogramtocalculatetheinputbodycodetoobtaintheverificationresult,andthencomparestheverificationresultwiththeverificationcodeoftheinputcodetocheckwhethertheinputiscorrectornot.Ifthetwoareconsistent,itmeansthatthecodeisenteredcorrectlyandthesystemallowsentry;iftheyareinconsistent,itmeansthatthecodeisenteredincorrectly,andthesystemrefusestoenterandrequiresthecodetobere-entered.
Малгоритъм за контролна сума
Различните алгоритми за контролна сума често са различни. Общите алгоритми за код за проверка включват: кодово разстояние, проверка на четност, проверка на Хеминг, проверка на циклична излишност и др.
Пример за алгоритъм
Код за проверка на лична карта
Съгласно националния стандарт GB11643-1999 на Китайската народна република, методът за изчисление за кода за потвърждение на гражданския номер на самоличността на Китайската народна република е ISO7064:1983.MOD11-2 метод за изчисляване на код за проверка
Приемаме 17-цифрено число
17-цифрено число | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Коефициент на тежест | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 |
368
Изчислете сумата от произведението на 17-цифреното число и съответния коефициент на тежест S: 1×7+2×9+3×10+4×5+5×8+6×4+7×2+8×1+9×6+0×3+1×7 +2×9+3×10+4×5+5×8+6×4+7×2=368;Изчислете остатъкаTofS÷11:368mod11=5;Изчислете остатъкаRof(12-T)÷11,ако R=10,кода за проверка е буква" X"; ако R≠10, кодът за проверка е числото "R": (12-5) mod11=7. 17-цифреният код за проверка е7, който е обобщен в 123456789012345677.
Формулата на коефициента на тежест е Wi=2^(n-1)(mod11), където е числовата последователност, започваща от 1 отдясно наляво.
Последователност
ai12345678901234567?
Wi79105842163791058421
Код за проверка на организацията
Кодът за национална организация се състои от осем цифри (или главни латински букви) основен код и една цифра (или главни латински букви) код за проверка. Кодът за проверка се изчислява съгласно следната формула:
<таблица>8
C9=11-MOD(∑Ci×Wi,11)
i=1
MOD-представяне на останалата функция;i-представяне на номера на позицията на символа на кода отляво надясно;
Ci-представляващ стойността на кодовия знак в тази позиция, изброена в следните символи на "набор от кодови знаци";
C9-указващ код за проверка;
Wi-указващ коефициента на тежест на позицията, областите на стойностите са както следва:
коефициент на тежест
p>i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Wi | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 |
Когато стойността на функцията MODWhenitis1(ieC9=10),кодът за проверка трябва да бъде представен от главната латинска буква“X”;когато стойността нафункциятаMODе 0(ieC9=11),кодът за проверка все още е представен от“0”;когато стойността наC9Whenitis е 1 до 9,кодът за проверка е пряко представен от стойността наC9.
Вижте
Система за кодове за проверка
Проверка за излишък