启辰互联
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
猜你喜欢
请下载代码后再发表评论
相关代码
最近下载
948394963 LV2
2021年4月25日
16693212235 LV4
2020年7月16日
风步绝 LV1
2020年1月22日
blueskyroof LV9
2019年9月20日
饺子有个排骨梦 LV4
2018年8月26日
ss3581948762 LV2
2018年3月23日
yhcyhcyhc LV22
2017年11月27日
最代码官方 LV168
2017年6月8日
AXIN LV36
2014年1月20日
juedi LV9
2013年1月4日
最近浏览
sky1044 LV1
2月19日
miiiji
2022年6月10日
暂无贡献等级
948394963 LV2
2021年4月25日
16693212235 LV4
2020年7月16日
大吴大吴大吴 LV4
2020年5月28日
lllpppwww LV5
2020年4月1日
风步绝 LV1
2020年1月22日
peng99 LV1
2019年12月25日
5555小耗子 LV7
2019年10月8日
blueskyroof LV9
2019年9月20日