خوارزمية التحقق من بطاقة هوية 18 بت
خوارزمية التحقق من بطاقة الهوية
كيفية إنشاء رمز التحقق من بطاقة الهوية:
∑ (ai × wi) (mod11)
I: يشير إلى رقم الموضع بما في ذلك رمز التحقق من اليسار ؛
تمثل الذكاء الاصطناعي قيمة حرف الرقم في الموضع I-Th ؛
عامل الترجيح في الموضع I-th من WI ، قيمته wi = mod (الطاقة (2 ، (N-1)) ، 11)
I181716151413121110987654321
Wi79105842163791058421
رمز التحقق المقابل:
∑ (ai × wi) (mod11) 012345678910
تحقق من قيمة حرف الرمز AI10X98765432
ها هي وظيفة الشيك:
FunctionSfzjy (NUM)
iflen (num) = 15th
CID = Left (num ، 6) و "19" & right (num ، 9)
elseiflen (num) = 17orlen (num) = 18then
CID = اليسار (num ، 17)
Endif
NSUM = منتصف (CID ، 1،1)*7
nsum = nsum+mid (CID ، 2،1)*9
nsum = nsum+mid (CID ، 3،1)*10
nsum = nsum+mid (CID ، 4،1)*5
nsum = nsum+mid (CID ، 5،1)*8
nsum = nsum+mid (CID ، 6،1)*4
nsum = nsum+mid (CID ، 7،1)*2
nsum = nsum+mid (CID ، 8،1)*1
nsum = nsum+mid (CID ، 9،1)*6
nsum = nsum+mid (CID ، 10،1)*3
nsum = nsum+mid (CID ، 11،1)*7
nsum = nsum+mid (CID ، 12،1)*9
nsum = nsum+mid (CID ، 13،1)*10
nsum = nsum+mid (CID ، 14،1)*5
nsum = nsum+mid (CID ، 15،1)*8
nsum = nsum+mid (CID ، 16،1)*4
nsum = nsum+mid (CID ، 17،1)*2
'* احسب قطعة الشيك
check_number = 12-nsummod11
ifcheck_number = 10thencheck_number = "x" elseifcheck_number = 12thencheck_number = "1" elseifcheck_number = 11thencheck_number = "0" endifsfzjy = check_number
الوظيفية
تحقيقات أخرى:
الجنس وتاريخ الميلاد:
sfznum = رقم المعرف
lenx = len (sfznum)
iflenx = 15th
yy = "19" & mid (Xian ، 7،2)
مم = منتصف (شيان ، 9،2)
DD = منتصف (شيان ، 11،2)
AA = MID (XIAN ، 15،1) '15-يمكن تصنيف بطاقة هوية digit 15 ، يمكن تقسيمها إلى امرأتين
Endif
iflenx = 18 ،
yy = منتصف (شيان ، 7،4)
مم = منتصف (شيان ، 11،2)
DD = منتصف (شيان ، 13،2)