18位身份证的最后一位校验码生成


发表时间:2013-01-03 21:30:59  发布人:rhtc

       //18位身份证:6位行政区域码+8位出生日期+3位顺序码+1位检验码
       //顺序码奇数为男,偶数为女
       //根据 ISO 7064:1983.MOD 11-2 校验码计算法
//1、根据给定的17位数字,计算其相应的加权因子的乘积的和S
//2、计算 S/11 的余数 T
//3、计算 (12-T)/11 的余数 R
//4、R即为计算得到的校验码,如果R=10,这校验码位"x",否则为数字R
public String getVerify(int[] num17){
       final int[] power = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
	for (int i = 0,sum=0; i < num17.length; i++) {
		sum = sum+num17[i]*power[i];
	}
	int T = sum%11;
	int R = (12-T)%11;
	return R==10?"x":String.valueOf(R);
}
public String getVerify(String num17){
	char[] carr = num17.toCharArray();
	int[] iarr = new int[17];
	for (int i = 0; i < iarr.length; i++) {
		iarr[i] = new Integer(String.valueOf(carr[i]));
	}
	return getVerify(iarr);
}

您想了解更多的信息吗?


如果需要,请留下您的联系方式,我们将安排资深工程师一对一
服务,为你提供详细的咨询服务!

姓 名 : *

电 话 : *

邮 箱 : *

验证码 : *

  

您还可以拨打我们的服务热线:

服务热线:400-801-7707

技术部门:010-57119502

工作时间:周一到周五

工作地点:北京市朝阳区双井桥西优士阁B座1510室

专注于企业网站品牌建设

电话:010-57119502    400-801-7707
邮箱:admin@rhtctech.com
地址:朝阳区东三环双井桥西优士阁B座1510号

京ICP备13007168号  |  京公网安备 11010502037969号  |  关于我们  |  招纳贤士  |  联系我们  | 北京网站建设公司  | 网站建设公司  | 建网360   |