อัลกอริทึมการตรวจสอบบัตรประจำตัวประชาชน 18 บิต
อัลกอริทึมรหัสการตรวจสอบบัตรประจำตัวประชาชน
วิธีสร้างรหัสการตรวจสอบบัตรประจำตัวประชาชน:
∑ (ai × wi) (mod11)
I: ระบุหมายเลขตำแหน่งรวมถึงรหัสการตรวจสอบจากด้านซ้าย
AI แสดงถึงค่าอักขระตัวเลขที่ตำแหน่ง I-TH;
ปัจจัยการถ่วงน้ำหนักที่ตำแหน่ง i-th ของ WI ค่า Wi = mod (กำลัง (2, (N-1)), 11)
I181716151413121110987654321
WI79105842163791058421
รหัสการตรวจสอบที่สอดคล้องกัน:
∑ (ai × wi) (mod11) 012345678910
ตรวจสอบค่ารหัสอักขระ AI10x98765432
นี่คือฟังก์ชั่นตรวจสอบ:
functionsfzjy (num)
iflen (num) = 15 จากนั้น
CID = ซ้าย (NUM, 6) & "19" & ขวา (NUM, 9)
elseiflen (num) = 17orlen (num) = 18 จากนั้น
CID = ซ้าย (NUM, 17)
endif
nsum = mid (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" อื่น ๆ
endfunction
การตรวจสอบอื่น ๆ :
เพศและวันเดือนปีเกิด:
sfznum = หมายเลข id
lenx = len (sfznum)
iflenx = 15 จากนั้น
yy = "19" & mid (Xian, 7,2)
MM = Mid (Xian, 9,2)
DD = Mid (Xian, 11,2)
AA = Mid (Xian, 15,1) '15 -digit Identity Card สามารถจัดอันดับ 15 สามารถแบ่งออกเป็นผู้หญิง 2 คน
endif
iflenx = 18 แล้ว
yy = mid (Xian, 7,4)
MM = Mid (Xian, 11,2)
DD = Mid (Xian, 13,2)