最代码广告位
启辰互联的gravatar头像
启辰互联2013-01-04 12:07:30

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

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

//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

       //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);
}

 


最代码官方编辑于2017-6-8 21:43:16

打赏

文件名:card.zip,文件大小:0K下载
  • /
    • /card.txt
最代码最近下载分享源代码列表最近下载
风步绝 LV11月22日
星星
blueskyroof LV92019年9月20日
月亮月亮星星
饺子有个排骨梦 LV42018年8月26日
月亮
ss3581948762 LV22018年3月23日
星星星星
yhcyhcyhc LV222017年11月27日
太阳月亮星星星星
最代码官方 LV1492017年6月8日
皇冠皇冠太阳月亮星星
AXIN LV362014年1月20日
太阳太阳月亮
juedi LV92013年1月4日
月亮月亮星星
最代码最近浏览分享源代码列表最近浏览
lllpppwww LV1昨天
星星
风步绝 LV11月22日
星星
peng99 LV12019年12月25日
星星
5555小耗子 LV52019年10月8日
月亮星星
blueskyroof LV92019年9月20日
月亮月亮星星
与你同行2019 LV92019年8月21日
月亮月亮星星
dongzhan LV72019年5月6日
月亮星星星星星星
123456112 LV22019年3月10日
星星星星
cmt460 LV122018年12月21日
月亮月亮月亮
小橘子 LV22018年12月12日
星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友