居民身份证验证原理
来源:互联网 发布:360压缩 mac 编辑:程序博客网 时间:2024/06/05 04:37
转自 http://blog.csdn.net/zengcong2013/article/details/18599145
程序要求:制作包含身份证校验函数的动态链接库
视频讲解:http://blog.fishc.com/2698.html
参考源代码:http://bbs.fishc.com/thread-33959-1-1.html
程序截图:
算法参考资料:
我国现行使用公民身份证号码有两种尊循两个国家标准,〖GB 11643-1989〗和〖GB 11643-1999〗。
〖GB 11643-1989〗中规定的是15位身份证号码:排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。
〖GB 11643-1999〗中规定的是18位身份证号码:公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
行政区划分代码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
行政区划分代码【国家标准GB T 2260-1999】
出生日期码:表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。
顺序码:表示同一地址码所标识的区域范围内,对同年、同月、同日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。
校验码:是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
按照中华人民共和国国家标准GB11643-1999规定中华人民共和国公民身份号码校验码的计算方法即为ISO 7064:1983.MOD 11-2校验码计算法。
假设某一17位数字是:12345678901234567
17位数字12345678901234567加权因子7910584216379105842
计算17位数字各位数字与对应的加权因子的乘积的和S:1×7+2×9+3×10+4×5+5×8+6×4+7×2+8×1+9×6+0×3+1×7+2×9+3×10+4×5+5×8+6×4+7×2=368;
计算S÷11的余数T:368 mod 11=5;
计算(12-T)÷11的余数R,如果R=10,校验码为字母“X”;如果R≠10,校验码为数字“R”:(12-5)mod 11=7。
该17位数字的校验码就是7,聚合在一为123456789012345677。
视频讲解:http://blog.fishc.com/2698.html
参考源代码:http://bbs.fishc.com/thread-33959-1-1.html
程序截图:
算法参考资料:
我国现行使用公民身份证号码有两种尊循两个国家标准,〖GB 11643-1989〗和〖GB 11643-1999〗。
〖GB 11643-1989〗中规定的是15位身份证号码:排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。
6位行政区划分代码
6位出生日期
3位顺序码
〖GB 11643-1999〗中规定的是18位身份证号码:公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
6位行政区划分代码
8位出生日期
3位顺序码
1位校验码
行政区划分代码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码。
行政区划分代码【国家标准GB T 2260-1999】
出生日期码:表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。
顺序码:表示同一地址码所标识的区域范围内,对同年、同月、同日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。
校验码:是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
按照中华人民共和国国家标准GB11643-1999规定中华人民共和国公民身份号码校验码的计算方法即为ISO 7064:1983.MOD 11-2校验码计算法。
假设某一17位数字是:12345678901234567
17位数字12345678901234567加权因子7910584216379105842
计算17位数字各位数字与对应的加权因子的乘积的和S:1×7+2×9+3×10+4×5+5×8+6×4+7×2+8×1+9×6+0×3+1×7+2×9+3×10+4×5+5×8+6×4+7×2=368;
计算S÷11的余数T:368 mod 11=5;
计算(12-T)÷11的余数R,如果R=10,校验码为字母“X”;如果R≠10,校验码为数字“R”:(12-5)mod 11=7。
该17位数字的校验码就是7,聚合在一为123456789012345677。
- 顶
- 0
- 踩
0 0
- 居民身份证验证原理
- 居民身份证验证原理
- 居民身份证正确性验证算法
- 验证居民身份证的合法性
- C# 扩展方法验证居民身份证
- Struts2自定义验证器(居民身份证验证)
- 好牛的教育部某网站, 居民身份证号码验证函数
- 更精确的新旧中国居民身份证号码验证算法
- 正则表达式匹配居民身份证
- 居民身份证编号识别
- 正则表达式匹配居民身份证
- 大陆居民身份证的奥秘
- 申请居民身份证网上副本
- 居民身份证号码校验
- 中国居民身份证号码检验程序
- 居民身份证号码的编码规则
- 验证码的原理
- 验证码的原理
- 解密SparkStreaming运行机制和架构进阶之Job和容错
- 自定义View之onMeasure方法
- oracle 12c 重建序列SEQUENCE
- java网络编程
- 分辨率问题+手机号的正则表达式
- 居民身份证验证原理
- c++继承与派生
- Mac环境下对android app抓包
- Java异常之数字转换异常--java.lang.NumberFormatException
- Object类的输出
- Hdu 4453 Looploop(环上的Splay操作)
- java基础学习——Java添加事件监听的四种方法代码实例
- linux网络工具iproute2的使用简介
- Lucene的深度分页支持