猫宁!!!

 
之前思考过常见证件的编码规则,抽空查了一下,发现挺有意思。
 
一般查询证件或者手机号归属地都是直接百度小工具,但是背后的查询机制如何,可能大多人不甚了解。
 
介绍几种生活中最常见的几串数字。
 
手机号:188 6450 0763(某诈骗电话)
 
中国大陆的国际电话区号是+86(国家码),上面号码开头的188(移动接入码)隶属于中国移动的号段,目前中国移动的号段最多,联通次之,电信最少。卫星通信的开头号段是1349,虚拟运行商的开头字段绝大多数是17开头的4位数(同样隶属于三大运营商)。
 
中间的4位6450属于地区码,这个由运营商进行分配,是你的HLR(Home Location Register)信息,感兴趣也可以查一下VLR,会对手机的通话机制有更多认识。
 
最后的0763是移动用户号,是在HLR之下进行分配的。
 
身份证号:36 07 24 19981016 601 3(某诈骗身份证)
 
在中国大陆地区,36表示你所在的省(或同级地区),07表示所在的地级市(或同级地区),24表示所在的县(或同级地区)。
 
中间的8位19981016就是熟悉的出生年月日,此后的3位601是所在地同年同月同日生人的顺序号,其中这里的1,也就是第17位,男性为奇数,女性为偶数。
 
最后一位3是校验码是通过一个特定的公式计算出来,如果校验码为10,那么用x代替,身份系统无法录入19位。详情可查看“居民身份证号码”百度百科,很清晰,这个数字可以判断出一个身份证号的真伪。
 
银行卡号:
622536 527156282 2(16位)
622848 242107389921 9(19位)
 
并非没有其他长度的卡号,在中国大陆这两种最多,仅说这两种。
 
前6位是发行者标识码(Issuer Indentification Number),这是国际标准化组织分配给各银行组织的,一般包括发卡行、卡的种类、卡的名称,支付宝、微信在你绑定银行卡的时候即可识别。中国银联卡的开头一般都是62。
 
中间的9位或者12位表示个人账号标识,内容一般包含支行网点所在地信息,部分可能不是。
 
最后一位是银行卡校验码,采用Luhn算法,根据卡号的前15位或者18位计算出来,所以银行卡号不是信口就可以编造出来的,详情可查看“Luhn算法”百度百科,很明了。
 
统一社会信用代码:9 1 110302 053604529 E
 
这一串数字同样是18位,和身份证相同,没错,它就是企业法人及其他组织的身份证号。
 
第一个数字表示所登记的管理部门,分为机构编制(1)、民政(5)、工商(9)、其他(Y)。
 
第二个数字表示上述登记管理部门下的细分机构类别,例如工商分为企业(1)、个体工商户(2)、农民专业合作社(3)。
 
3-8位表示登记管理机关的行政区划码,也就是工商注册号开头的6位数。
 
9-17位表示组织机构代码
 
最后一位是校验码,算法有点复杂,但是花点时间就能看懂。
 
详情链接如下:
http://qyj.saic.gov.cn/zyfb/gszjfb/201612/t20161208_232473.html
 

PJzhang:今天才搞清身份证、银行卡……的编码规则的更多相关文章

  1. atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结

    atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结 1. nfc(近距离无线通讯技术)  1 2. 工作模式 1 3. NFC 蓝牙 红外具体对比如下表: 2 4. TypeA ...

  2. UTF-8编码规则(转)

    from:http://www.cnblogs.com/chenwenbiao/archive/2011/08/11/2134503.html UTF-8是Unicode的一种实现方式,也就是它的字节 ...

  3. 通用的业务编码规则设计实现[转:http://www.cnblogs.com/xqin/p/3708367.html]

    一.背景 每一个企业应用中不可避免的都会涉及到业务编码规则的问题,比如订单管理系统中的订单编号,比如商品管理系统中的商品编码,比如项目管理系统中的项目编码等等,这一系列的编码都需要管理起来,那么它们的 ...

  4. UTF-8编码规则

    UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所 ...

  5. UTF-8编码规则【转】

    hz_chenwenbiao UTF-8编码规则(转) UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode ...

  6. WEB前端 [编码] 规则浅析

    前言 说到前端安全问题,首先想到的无疑是XSS(Cross Site Scripting,即跨站脚本),其主要发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被 ...

  7. 04Redis入门指南笔记(内部编码规则简介)

    Redis是一个基于内存的数据库,所有的数据都存储在内存中.所以如何优化存储,减少内存空间占用是一个非常重要的话题.精简键名和键值是最直观的减少内存占用的方式,如将键名very.important.p ...

  8. Kconfig 配置文件编码规则

    最早接触到Kconfig是在u-boot的移植过程中.所今天来好好学习一下如何编写一个符合Kconffigde 配置文件.Kbuild或者是Kconfig的中文翻译意思是内核配置/构建系统.他最早出自 ...

  9. 转:从开源项目学习 C 语言基本的编码规则

    从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项 ...

随机推荐

  1. slices = [dicom.read_file(path + '/' + s) for s in os.listdir(path)] FileNotFoundError: [WinError 3] 系统找不到指定的路径。

    最近跟着kaggle做一个医疗项目,加载路径总是出错. 将下面箭头处: 改为: path = os.path.join(data_dir, patient)问题迎刃而解 上面的路径拼接方法可能是ipy ...

  2. NTP服务及时间同步

    环境: centos7 server   192.168.2.171 client    192.168.2.173.192.168.2.174 整体思路:173.174同步171的时间,171定时同 ...

  3. cookie实例---显示上一次访问的时间与java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value

    创建Cookie,名为lasttime,值为当前时间,添加到response中: 在A.jsp中获取请求中名为lasttime的Cookie: 如果不存在输出“您是第一次访问本站”,如果存在输出“您上 ...

  4. shell编程初探

    #! /bin/sh #这是神圣丁的第一个shell脚本 name="陈培昌" echo "我就喜欢\"$name\"" echo '我就喜 ...

  5. HDU 6045 - Is Derek lying | 2017 Multi-University Training Contest 2

    /* HDU 6045 - Is Derek lying [ 分析 ] 题意: 有N个问题, 每个问题有A,B,C三种答案,答对加一分,答错不加分 给出甲乙两人的答案,给出两人的分数先x, y,问分数 ...

  6. python爬虫添加请求头

    request import requests headers = { # 'Accept': 'application/json, text/javascript, */*; q=0.01', # ...

  7. Luogu P4139 上帝与集合的正确用法

    题目链接:Click here Solution: 这道题就考你会不会扩展欧拉定理,根据扩展欧拉定理可知 \[ a^b \equiv a^{(b\,mod\,\varphi(p))+\varphi(p ...

  8. np.max() 和 np.maximum()的区别

    1.np.max(a, axis=None, out=None, keepdims=False) 求序列的最值 最少接受一个参数 axis默认为axis=0即列向,如果axis=1即横向 ex: &g ...

  9. 推荐系统系列(五):Deep Crossing理论与实践

    背景 特征工程是绕不开的话题,巧妙的特征组合也许能够为模型带来质的提升.但同时,特征工程耗费的资源也是相当可观的,对于后期模型特征的维护.模型线上部署不太友好.2016年,微软提出Deep Cross ...

  10. Spring Boot教程(三十三)使用Redis数据库(1)

    Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, So ...