/**
* 中国居民身份证校验码算法
* @param IDNumber 身份证号码
* @return 校验成功返回true,否则返回false
*/
public static boolean IDNumberCheck(String IDNumber) {
boolean results = false;
//前17位对应的系数
int[] verifyCode = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
//第18位校验码
String[] checksum = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};
if (IDNumber.length() != 18) {
return results;
}
//计算前17位数字
int aSum = 0;
for (int i = 0; i < IDNumber.length() - 1; i++) {
aSum += (Integer.parseInt(IDNumber.substring(i, i + 1)) * verifyCode[i]);
}
//校验最后一位校验码
if (IDNumber.substring(IDNumber.length() - 1).equals(checksum[aSum % 11])) {
return true;
}
r
中国居民身份证号码校验算法
于 2022-08-12 13:04:46 首次发布