中华人民共和国公民身份号码校验

简介: source: http://zh.wikipedia.org/wiki/中华人民共和国公民身份号码 #!/usr/bin/python import re;#定义验证函数def IC_chk(ic_serial): #权重数组 iW = [7, 9, 10, 5, 8, 4, 2, ...

source: http://zh.wikipedia.org/wiki/中华人民共和国公民身份号码

#!/usr/bin/python

import re;

#定义验证函数
def IC_chk(ic_serial):
#权重数组
iW = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
#身份证号码中可能的字符
values = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'x']
#使用正则表达式检测
icre = re.compile('^[1-9][0-9]{16}[x0-9]$', re.IGNORECASE);
m = icre.match(ic_serial);
if m:
pass;
else:
#不是合法的身份证号码,直接退出
return False;

S = 0;
for i in range(0,17):
S += int(ic[i]) * iW[i];

chk_val = (12 - (S % 11)) % 11;

return ic_serial[17].lower() == values[chk_val];

#测试验证函数
ic = raw_input("Please input IC serial: ");
if IC_chk(ic):
print "Correct IC Serial!";
else:
print "Wrong IC Serial!";

 

相关文章
|
1月前
|
数据采集 存储 API
电子邮件号码大全违法吗
电子邮件号码大全是包含大量邮件地址的数据库,其获取途径多样,可能涉及法律问题。未经用户同意收集、使用邮件地址在许多地区属违法,如欧洲的GDPR规定。合法使用需用户明确同意,且应提供取消订阅选项。企业应确保用户知情并同意加入邮件列表,以遵循法规。AokSend提供合法的触发式邮件发送服务,支持SMTP/API接口,保证高触达。
通过工信部系统未核实到实名信息
系统检查:通过工信部系统未核实到xxxxx的实名认证信息,请在域名注册商完成域名实名认证后2-3天再提交备案,域名注册商非阿里云请咨询其域名注册商
|
5月前
|
前端开发 JavaScript
JS前端实现身份证号码合法性校验(校验码校验)
JS前端实现身份证号码合法性校验(校验码校验)
132 0
|
11月前
|
设计模式 架构师 网络安全
带你读《自主管理身份:分布式数字身份和可验证凭证》——关于本书
带你读《自主管理身份:分布式数字身份和可验证凭证》——关于本书
|
安全 数据安全/隐私保护
内网渗透|Kerberos认证和黄金票据
内网渗透|Kerberos认证和黄金票据
212 0
内网渗透|Kerberos认证和黄金票据
|
搜索推荐 API 数据安全/隐私保护
呼叫中心系统怎样保护号码隐私
呼叫中心系统怎样保护号码隐私
|
SQL Oracle 关系型数据库
Oracle管理员用户及身份认证详解
Oracle管理员用户及身份认证详解
449 0
Oracle管理员用户及身份认证详解
|
安全 API
号码隐私保护,让用户数据更安全
在互联网时代,数据安全是用户的重中之重,号码隐私保护,让用户数据更安全,实时为用户安全护航。
4544 0
|
安全 数据安全/隐私保护 开发者
阿里云通信发布全新号码认证服务, 重新定义手机号码认证的方式
12月12日,阿里云通信宣布号码认证服务正式商用,将重新定义手机号码认证的方式。因移动应用实名制的政策要求,手机号码认证在移动APP的注册、登录等场景用的越来越多。而对于开发者来说,能完成手机号码认证的选择并不多,一般是借助短信、语音的基础通信通道,自己实现短信验证码或语音验证码来实现。
24916 0

热门文章

最新文章