祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 7810|回复: 4

[转帖]中华人民共和国居民身份证15与18规则算法

[复制链接]

[转帖]中华人民共和国居民身份证15与18规则算法

[复制链接]
阿辉

主题

0

回帖

194

积分

超级版主

积分
194
贡献
在线时间
小时
2005-9-20 10:04:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的
规定,公民身份号码是特征组合码,由十七位数字本码和一位数字校验
码组成。排列顺序从左至右依次为:六位数字地址区位码,八位数字出
生日期码,三位数字顺序码和一位数字校验码。

地址区位码:表示居民常住户口所在县(市、区)的行政区划代码。

出生日期码:表示居民出生的年、月、日,其中年份用四位数字表示,
年、月、日之间不用分隔符。

数字顺序码:表示同一地址区位码所标识的区域范围内,对同年同月同
日出生的人员编定的顺序号。奇数分给男性,偶数分给女性。

数字校验码:根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校
验码计算出来的检验码。由(1,2,3,4,5,6,7,8,9,X)构成。

下面举例说明该计算方法并用代码实现。

公式:Ax=(∑(Ai×Wi))(mod 11)…………………………(1)

i----表示身份证号码字符从右至左包括校验码在内的位置序号;
Ai----表示第i位置上的数字号码;
Ax----数字校验码的值;
Wi----示第i位置上的加权因子;
公式:Wi=(2^(i-1))(mod 11)…………………………(2)

设某男性公民身份号码为51310119820113001,首先得到各个变量:

i18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

Ai5 1 3 1 0 1 1 9 8 2 0 1 1 3 0 0 1 Ax
由公式(2)可得:
Wi7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1

Ai×Wi 35 9 30 5 0 4 2 9 48 6 0 9 10 15 0 0 2 A1

按照公式(1)计算:

∑(Ai×Wi)=(35+9+30+5+0+4+2+9+48+6+0+9+10+15+0+0+2)=184
184÷11=16+8/11
∑(Ai×Wi)(mod 11)=8

然后根据计算的结果,从下表中查出相应的校验码,X表示结果为10:

∑(Ai×WI)(mod 11)0 1 2 3 4 5 6 7 8 9 10
校验码字符值Ai1 0 X 9 8 7 6 5 4 3 2

根据上面的方法,查出计算结果为8的校验码为4所以该人员的公民身份
号码应该为513101198201130014。

以下是我在PB 8.0中实现的代码(在窗口上放置两个SingleLineEdit控件和一个CommandButton控件)

//sle_1:旧的身份证号码
//sle_2:旧的身份证号码
long Ai=0
string code,old_id
int i
old_id=trim(sle_1.text)
for i=17 to 1 step -1
Ai=Ai+(long(mid(old_id,i,1)))*(mod(2^((18)-i),11))
next
choose case mod(Ai,11)
case 0
code='1'
case 1
code='0'
case 2
code='X'
case else
code=string((12)-mod(Ai,11))
end choose
sle_2.text=old_id+code
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
cnsyk

主题

0

回帖

2

积分

新手上路

积分
2
贡献
在线时间
小时
2006-2-17 11:04:56 | 显示全部楼层
谢谢
共享共进共赢Sharing And Win-win Results
flybean

主题

0

回帖

595

积分

管理员

积分
595
贡献
在线时间
小时
2006-2-17 13:52:34 | 显示全部楼层
不错不错
共享共进共赢Sharing And Win-win Results
awang

主题

0

回帖

24

积分

版主

积分
24
贡献
在线时间
小时
2006-2-19 15:37:43 | 显示全部楼层
[em02]
共享共进共赢Sharing And Win-win Results
chenxpcn

主题

0

回帖

1

积分

新手上路

积分
1
贡献
在线时间
小时
2007-12-11 22:04:52 | 显示全部楼层

好,正到处找呢!

共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-12-22 23:15 , Processed in 0.036308 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表