Algoritmo de verificación de tarjeta de identificación de 18 bits
Algoritmo de código de verificación de tarjeta de identificación
Cómo generar código de verificación de tarjeta de identificación:
∑ (ai × wi) (mod11)
I: indica el número de posición que incluye el código de verificación desde la izquierda;
AI representa el valor numérico del carácter en la posición I-Th;
El factor de ponderación en la posición I-TH de WI, su valor wi = mod (potencia (2, (n-1)), 11)
I181716151413121110987654321
WI79105842163791058421
Código de verificación correspondiente:
∑ (ai × wi) (mod11) 012345678910
Verificar el valor del carácter del código AI10X98765432
Aquí está la función de verificación:
Funcionesfzjy (num)
iflen (num) = 15Then
CID = izquierda (num, 6) y "19" y derecha (num, 9)
Elseiflen (num) = 17orlen (num) = 18Then
CID = izquierda (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
'* Calcule el bit de verificación
check_number = 12-nsummod11
Ifcheck_number = 10thencheck_number = "x" elseifcheck_number = 12thencheck_number = "1" Elseifcheck_number = 11thencheck_number = "0" endifsfzjy = check_number
Función final
Otras verificaciones:
Género y fecha de nacimiento:
sfznum = número de identificación
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 La tarjeta de identidad de dígito se puede clasificar el 15, se puede dividir en 2 mujeres
endif
iflenx = 18Then
yy = Mid (xian, 7,4)
mm = Mid (xian, 11,2)
DD = Mid (Xian, 13,2)