PB与Sybase环境下公民身份号码升位实现及校验算法
需积分: 0 189 浏览量
更新于2024-09-28
1
收藏 29KB DOC 举报
在信息技术领域,特别是在数据库管理中,公民身份号码升位是一项常见的操作,特别是在基于PB (Progress 4GL) 和 Sybase 数据库环境中。这篇文章《基于PB和Sybase环境的公民身份号码升位方法》由独孤求败于2003年5月27日在《计算机世界日报》上发表,针对Sybase数据库中的公民身份号码升位问题提供了实用的解决方案。
公民身份号码,依据中华人民共和国国家标准GB11643-1999,由18位数字构成,分为六个地址码、八个生日码、三位顺序码和一个校验码。升位操作主要是为了处理身份证号码中的校验码更新,通常在原号码基础上进行规则性调整,如将第17位的校验码根据新的计算规则进行修改。
作者胥永康提出了一个具体的操作方法,利用Sybase的TSQL(Transact-SQL)语言来实现。该算法涉及对原始身份证号码的拆分,然后根据ISO 7064:1983的MOD11-2校验码系统进行计算。算法的关键步骤包括:
1. 将身份证号码拆分成各个部分,包括前六位地址码,接下来的八个数字代表出生日期,再后的三位顺序码,以及最后一位校验码。
2. 对每个部分的数字乘以特定的权重,例如奇数位置的数字乘以7、偶数位置乘以9、单个字符乘以相应的数值,然后相加。
3. 计算结果加上固定的系数(如2和1),并将得到的总和进行MOD11-2运算,即模11除以2的余数。
4. 最后,根据新的校验码规则,如果余数为10,则新校验码为1;如果余数小于10,则新校验码为余数本身。
文章提供了一个可直接在Sybase数据库环境下运行的过程和函数,旨在解决身份号码升位问题,并确保合法性检验。这不仅适用于数据库中的数据更新,还考虑到了客户端程序如何与数据库交互,以实现身份号码在应用程序中的自适应变化。对于任何处理公民身份信息的IT项目,了解和掌握这样的升位方法是至关重要的,它涉及到数据隐私保护和法规遵从性。
2009-11-20 上传
2012-10-29 上传
2021-10-10 上传
2024-01-04 上传
2015-05-22 上传
2020-07-07 上传
2021-05-07 上传
2024-01-04 上传
2021-03-23 上传
乖乖虫
- 粉丝: 0
- 资源: 5
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能