首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

校验身份证号码

之前在做项目的时候遇到了需要校验身份证号码,最初始的想法就是校验一下是否数字还有就是校验长度,后来想到有的身份证号的最末尾数字是X,于是又加入了一层判断末尾数为X的判断。...写好以后总是感觉不对劲,因为之前写校验手机号的就能校验一下大致的真伪,但是现在写的身份证校验根本就算不上是校验。...于是就在网上搜了一下,发现身份证号码是有规律和算法的,下面来看一下 根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成... 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1 有了上面的算法就产生了如何利用js来校验身份证号码的算法了...cardid[i] * first[i]; } var result = sum % 11; var last = stard[result]; //计算出来的最后一位身份证号码

2.6K32

Python随机生成身份证号码校验功能

校验码为一位数,但如果最后采用校验码系统计算的校验码是“10”,碍于身份证号码为18位的规定,则以“X”代替校验码“10”。 校验码计算方法 ?1....将身份证号码从右至左标记为a_1 , a_2 , cdots , a_{18},a_1即为校验码; ?2....4. a_1=(12-( S bmod 11)) bmod 11 使用Python获取身份证校验码: def get_check_digit(id_number): """通过身份证号获取校验码"...随机生成身份证号码校验功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。...Python生成随机MAC地址 Python随机生成信用卡卡号的实现方法 Python简单生成随机姓名的方法示例 Python实现随机创建电话号码的方法示例

5.1K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    身份证号码校验算法

    1、数字含义 中国大陆第二代身份证号码由18位数据或字母组成,每位数据都有特定的含义,结果如下: 每组数字都有不同的含义: 第1至2位数字代表所在省(直辖市、自治区)的代码; 第3至4位数字代表所在地级市...也就是说身份证号码不是随便产生的,它是用来检验身份的正确性。在没有全国个人身份证信息库时。可以通过检验码来校验身份证的正确性。...校验码由0-9的数据和字母X组成,其实X表示10(这并不是英文字母X,而是希腊数字10的缩写)。是由号码编制单位按统一的计算公式计算出来的,校验身份证号码正确性也是通过这个公式实现。...计算出S后再用S对11取余,根据余数确定校验位数字,对照表如下: 比如例子中的身份证号计算出来的S为189,对11取余结果为2,查表2对应的校验码为X,所以该身份证号最后一位应该为X。...3、Python代码 def checkIDNumber(num_str): str_to_int = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5':

    3.2K90

    Python写一个身份证号码校验系统

    这是一个用Python开发的GUI实战项目:居民身份证信息校验系统 一、总体介绍 本项目使用Tkinter作为GUI模块,充分利用Python面向对象的思想,开发一款实现身份证号码校验的应用程序。...具备解析用户输入的身份证号码中的地区信息、出生日期、以及身份证号码是否合法等功能。是一款练习Python面向对象思想、tkinter GUI模块的优质练手项目。 项目演示 ?...以上,如果我们输入一个正确的身份证号码,系统可以正常解析;但是篡改其中一位的话,校验结果直接显示无效;如果少输入一位的话,系统会提示“请输入18位”。 二、认识身份证号码 身份证号码的构成如下: ?...检查校验码 (1) 对身份证号码进行切片 首先我们把获取到的身份证号码分成地区码、生日码、顺序码、校验码,四个部分,存储在列表id_list[]中。...身份证号码输入位数不足的情况 情况二:最后一位校验位错误(本来是7我们故意输入8) ? 身份证号码最后一位故意输错的情况 情况三:输入正确的身份证号码的情况 ?

    2.8K50

    python 计算校验

    校验和是经常使用的,这里简单的列了一个针对按字节计算累加和的代码片段。其实,这种累加和的计算,将字节翻译为无符号整数和带符号整数,结果是一样的。 使用python计算校验和时记住做截断就可以了。...这里仅仅是作为一个代码样本,权作标记,直接上代码 ''' Created on 2014年9月4日 @author: lenovo ''' import random ''' 实际计算校验和时,解释为无符号整数还是带符号整数...如果是带符号整数,最高位会被解释符号位 ''' def char_checksum(data, byteorder='little'): ''' char_checksum 按字节计算校验和...return checksum def uchar_checksum(data, byteorder='little'): ''' char_checksum 按字节计算校验和...所以一般情况下可以使用无符号整数来计算校验和,简单快速。

    2.7K10

    PYTHON验证身份证号码准确性

    大家每个人都有身份证,但是认真研究过自己那18位居民身份证号码的人可能真的不多,今天就跟大家简单聊一下身份证号码的构成形式及最后一位验证码的验证办法。...最开始呐先向大家介绍一下身份证号码的生成规则,特意找了一个最官方的文档,以下内容摘选于国家质量技术监督局编制的GB11643-1999《公民身份号码》 那么根据官方公布的以上五项标准,我们就可以自行提炼出一个居民身份证号码必须满足的一些条件了...没关系,简单翻译并且加工一下就是: 1.身份证号码前17位数分别乘以7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 2.前17位数字和系数相乘的结果相加 3.相加的数据除以11,...得出余数 4.余数有0-10这11个数字,分别对应的身份证最后一位校验码为1,0,X,9,8,7,6,5,4,3,2(这个X其实是罗马数字的10) 根据以上我们提炼的规则我们就可以利用一些算法工具在一些简单的层面上去验证一个身份证号码的真假了...,用EXCEL、SAS、R、SQL、PYTHON都是可以的,下面我用PYTHON来示范一下,最终效果如下: 最后不废话放出代码: 上面那段代码中其实并没有把上面那五个条件都列入,感兴趣的话可以看一下是哪些条件没有列入

    3.2K90

    Python|趣解身份证号码的奥秘

    问题描述 作为一个公民,每个人都有一张独一无二的身份证,有独一无二的身份证号码。在这里面几乎储存了我们所有的行踪与信息,所以有很多不法分子能够仅通过身份证号码进行一些犯罪活动。...解决方案 通过简单的查询,我们不难知道,其实身份证号码虽然独一无二,但其生成的规律确是固定的,仅仅通过公式便能确定一个身份证号码是否正确,反之也可以通过一个确定正确但不完整的身份证号码来反推完整信息。...身份证的组成部分相信大家都明白,其最重要的是最后一位校验码,而校验码的计算其实非常简单: 前17位数字每一个对应了一个系数,分别是7. 9 .10 .5. 8. 4. 2. 1. 6. 3. 7. 9....,这样就得到自己的校验码,读者当然可以自己试试自己的身份证号码。...Python代码:判断身份证号是否真实 def ID_Card_judgment(ID_num): list1 = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2

    1.4K20

    56行Python代码实现身份证字典生成器

    我们学校的教务处系统默认密码为身份证号码,于是我就打算写一个自动生成身份证号字典的Python脚本。只要能生成一个字典,就能靠Burpsuite的Intruder功能提交Web表单,实现暴力破解。...0x01 身份证号码结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。...fromtitle=身份证号码&fromid=2135487 0x02 校验码规则 1、将前面的身份证号码17位数分别乘以不同的系数。...fr=aladdin 0x03 思路 一个完整的身份证号码包括地址码,出生日期码,顺序码,校验码。...我们再列举出从001到999的3位顺序码,将前面的14位身份证号码加上3位顺序码一共17位代入校验规则中计算出校验码。这样我们可以列出来的字典有999中可能。

    9.9K30

    SpringBoot--数据校验(普通校验、分组校验

    作者:吴声子夜歌 原文链接:https://blog.csdn.net/cold___play/article/details/104209719 普通校验 普通检验是基础用法,非常容易,首先需要用户在...SpringBootWeb项目中添加数据校验相关的依赖: org.springframework.boot...,紧接着的BindingResult参数表示在校验出错时保存的出错信息。...分组校验 有的时候,开发者在某一个实体类中定义了很多校验规则,但是在某一次业务处理中,并不需要这么多校验规则,此时就可以使用分组校验: 首先创建两个分组接口: public interface ValidationGroup1...分组的校验规则,即只校验邮箱地址是否为空、用户地址是否为空 @PostMapping("/user") public List addUser(@Validated(ValidationGroup2

    1.5K10

    我用python算出了同事的身份证号码

    浙江省宁波人,1993年滴 那我先用python生成1993年的所有日期吧 import time #生成出生当年所有日期 def dateRange(year): fmt = '%Y-%m-...再用刚才的校验码计算规则 反向验证哪个日期符合喽! 自己写计算规则? NONONO,太麻烦!...那么我们利用 id-validator 来依次校验刚才生成的身份证号码。...from id_validator import validator #遍历所有日期,print通过校验身份证号码 def vali_dator(id1,id2,id3): for i in...文中人物、身份证号码纯属虚构,如有雷同,就是抄我的。 作者:朱小五,某互联网公司数据分析师,热衷于爬虫,数据分析,可视化,个人公众号《凹凸玩数据》,带给大家有趣好玩的文章。

    1K70
    领券