企业注册号构造、入库实现原理
来源:互联网 发布:数据信号避雷器 编辑:程序博客网 时间:2024/05/06 04:39
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
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
- 企业注册号构造、入库实现原理
- 实现营业执照注册号校验
- ASP实现批处理入库
- php实现session入库
- session入库实现
- SESSION入库的实现
- SESSION入库的实现
- MyEclipse注册号
- avs 注册号
- MyEclipse注册号
- 飞机注册号
- 注册号生成
- 编译原理 子集构造法实现
- c#实现的音频入库
- 数据库入库的方式实现
- 入库
- OpenERP 生产型企业原材料采购及入库的处理
- 如何实现--让软件只有30天的试用期,然后需要输入注册号?
- 如何优化网站的响应时间
- [kuangbin带你飞]专题七 线段树 C POJ 3468
- linux dirname basename的用法
- Android Studio中的keystore
- 利用GUI界面来编写ATM机
- 企业注册号构造、入库实现原理
- PAT乙级1006
- 《Java多线程编程核心技术》(一)多线程技能
- 2.4.3节练习
- 目标跟踪学习算法之二:DSST
- java Math类
- (学习笔记) Java byte[]转二进制字符串,十六进制字符串的相互转换
- 2016.9.20 在yoya的三个月
- 文件系统支持 rz rc 命令传输文件