18 비트 ID 카드 검증 알고리즘
ID 카드 확인 코드 알고리즘
ID 카드 확인 코드를 생성하는 방법 :
∑ (ai × wi) (mod11)
I : 왼쪽의 검증 코드를 포함한 위치 번호를 나타냅니다.
AI는 I-TH 위치에서 숫자 문자 값을 나타냅니다.
WI의 I-TH 위치에서의 가중치, 값 Wi = mod (power (2, (n-1)), 11)
i181716151413121110987654321
WI79105842163791058421
해당 확인 코드 :
∑ (ai × wi) (mod11) 012345678910
코드 문자 값 AI10X98765432를 확인하십시오
확인 기능은 다음과 같습니다.
functionsfzjy (num)
iflen (num) = 15then
cid = 왼쪽 (Num, 6) & "19"& 오른쪽 (Num, 9)
elseiflen (num) = 17orlen (num) = 18then
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"elseifcheck_number = 11thencheck_number = "0"endifsfzjy = check_number
최종 기능 장애
기타 검증 :
성별 및 생년월일 :
sfznum = ID 번호
Lenx = Len (sfznum)
iflenx = 15then
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 = 18then
yy = Mid (Xian, 7,4)
MM = MID (Xian, 11,2)
DD = MID (Xian, 13,2)