企业注册号构造、入库实现原理
2016-09-20 23:03
323 查看
1、背景:
为找到并尽可能小范围、精确的穷尽注册号,我做了哪些工作?(1)、外部
通过Google、baidu、知乎大范围撒网找相关注册号的规律的资料。核心结论:
1)前6位代表机关号,如:山东省有17地市,共175个机关号。
2)第7-14位为顺序号,第7位代表私营企业、有限责任公司、外资企业等,用1-9表示;
第8-14没有资料介绍规律。
3)第15位为校验码。
(2)、内部
1)通过程序实现了了校验码。2)尝试通过穷举方式,穷举一个省的全部注册号。面临问题:已有核心结论,面太广,命中率非常低。
3)最终采用方法:从天眼查等网站找一定数量的数据(2万条)左右,穷举其第7-10位的可能性,
初步排查可能性远小于10000,这是提高命中率的极好的信号。
穷举方法:Shell脚本取第7-10位,然后排序sort、取唯一值uniq。
4)根据以上分析,构造某一个省内全部注册号数据。
3、一键构造某省数据、并完成入库流程
第一步:对机关号进行编码,并分别存储。
机关英文缩写存储到一个文件中,如: sd_register_name.txt机关号以地市为单位存储到不同的文件中,如:zb_register_codes.txt,共17个文件。比如:济南、济宁编号都是jn开头的,可以变化下一个为qn(确保不同即可)。如:
淄博市 zb_zibo 370300
张店区 zb_zhangdian 370303
博山区 zb_boshan 370304
周村区 zb_zhoucun 370306
第二步:根据已有2万条记录,穷举的7-10位数据存储到数组中。
该部分内容数量不大,可以存储到数组中。后续如果需要扩展,直接向后填充即可。程序求长度不要写死,直接sizeof(数组名)/sizeof(char*)求长度,便于动态扩展。
第三步:循环构造第11-14位。
穷举构造0000——9999共1万种可能性。第四步:将前14位带入校验码程序验证,生成校验码。
第五步:构造拼接成15位程序。
4、程序具体实现步骤
Step1:逐行读sd_register_name.txt文件,外层共循环175次。(以山东省为例)Step2:读到前两个字节为zb开头的,判定zb_register的数据库表是否存在,不存在,则创建之;存在,则跳过。
Step3:对应读zb_register_codes.txt文件,以便构造15位注册号;
Step4:构造完毕后,写入zb_register的数据库表中。
Step5:外层循环结束,整个写入完毕。
5、小结
采用技术:Linux平台 C++、MysqlC++、创建数据库表、读文件、构造数据、写数据库。逻辑清晰后,其他水到渠成。
2016-9-20 pm23:02 思于家中床前
作者:铭毅天下
转载请标明出处,原文地址:
http://blog.csdn.net/laoyang360/article/details/52601607
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
相关文章推荐
- 企业服务的项目模版--一个实现自动注册服务的跨进程缓存的例子
- 关于xmpp协议的注册模块的实现原理(gloox库)
- object-c的自定义构造方法,以及new方法实现原理
- Tencent://Message/协议的实现原理(Windows提供协议注册)
- Dubbo原理解析-注册中心之基于dubbo协议的简单注册中心实现
- WAS应用系列:WAS6 自定义用户注册接口代码 + 企业应用安全角色配置 + WAS安全配置 实现统一灵活的集成授权
- GBDT原理及利用GBDT构造新的特征-Python实现
- new方法的实现原理、构造方法、类工厂方法、instancetype和id
- 【MVC】会员注册/登录,普通验证,会员名是否注册Ajax验证以及会员邮件验证实现原理
- Spring3.1.0实现原理分析(七).填充Bean属性,初始化Bean,登记善后处理,注册单例Bean
- 激活码方式注册的实现原理述
- Python高级特性:利用类构造及析构原理实现单实例模式
- 12. Dubbo原理解析-注册中心之基于dubbo协议的简单注册中心实现
- OC 方法调用方式,new 方法实现原理,oc自定义构造方法:
- 构造HTTP请求Header实现“伪造来源IP”(重在原理)
- 企业服务的项目模版--一个实现自动注册服务的跨进程缓存的例子
- Map在Java中构造缓存对象的原理及实现
- jdbc实现篇-源码(Oracle、MySQL)-第一部分-Dirver注册和获取及Connection获取原理
- 【MVC】会员注册/登录,普通验证,会员名是否注册Ajax验证以及会员邮件验证实现原理
- Spring3.1.0实现原理分析(七).填充Bean属性,初始化Bean,登记善后处理,注册单例Bean