精易论坛

标题: 身份zheng校验码的计算 [打印本页]

作者: 天空c    时间: 2022-1-11 18:35
标题: 身份zheng校验码的计算
本帖最后由 天空c 于 2022-1-11 18:37 编辑

众所周知:sfz号由18个数字组成
1-6:地址码
7-14:数字出生日期码

15-17:三位数字顺序码
18:校验码

一些程序通常采用判断数字校验码的正误,来判断身份证是否正确

校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的。
demo:
***校验位计算.e (6.73 KB, 下载次数: 67)





  
子程序名返回值类型公开备 注
计算校验码文本型 
参数名类 型参考可空数组备 注
身份证前17位文本型
变量名类 型静态数组备 注
card字节集 
map文本型0
sum整数型 
i整数型 
' 校验方式:将2的17次幂+2的16次幂+……+2的1次幂分别对应乘以身份证号码的1-17位数字,最后求和,再除以11,余数对应相应的字符
判断 (取文本长度 (身份证前17位) < 17)
返回 (“”)
card = 取字节集左边 (到字节集 (身份证前17位), 17)  ' 保留前17个
map = { “1”, “0”, “X”, “9”, “8”, “7”, “6”, “5”, “4”, “ 3”, “2” }
计次循环首 (17, i)
sum = sum + 求次方 (2, i) × 到整数 (字符 (card [18 - i]))
计次循环尾 ()
返回 (map [sum % 11 + 1])
' py版:print('身份证第18位:' + str((12-(sum([(int(str(SFZ[NUM]))*(2**(17-NUM)) % 11) for NUM in range(17)]) % 11)) % 11).replace('10','x'))
子程序名返回值类型公开备 注
校验身份证逻辑型 拓展应用
参数名类 型参考可空数组备 注
身份证文本型18位
返回_校验码文本型理论上的校验码
如果真 (取文本长度 (身份证) ≠ 18)
返回 ()
返回_校验码 = 计算校验码 (身份证)
判断 (返回_校验码 = 取文本中间 (身份证, 18, 1))
返回 ()
返回 ()
返回 ()


作者: 金胖子    时间: 2022-1-11 22:15
拿来吧你!
作者: 1279868433    时间: 2022-1-12 03:20
支持开源~!感谢分享
作者: huxian    时间: 2022-1-12 03:21
哈哈可以哦成功
作者: wuqingg    时间: 2022-1-12 08:35
好像比这个复杂一点吧,那时候看一个视频说过
作者: wuqingg    时间: 2022-1-12 08:35
支持开源~!感谢分享
作者: Lemo旧约    时间: 2022-1-12 09:08
支持一下
作者: xjshuaishuai    时间: 2022-1-12 09:19
谢谢分享!
作者: dangerace    时间: 2022-1-12 11:16
我在模块区发了一个校验***的模块,被秒删。这里却能发,不明白为什么
作者: 曦月    时间: 2022-1-12 12:39
论坛有你更精彩
作者: qq2518    时间: 2022-1-12 17:24
感谢分享。学习一下思路
作者: quary888    时间: 2022-1-12 17:27
谢谢楼主分享!!! 好人一生平安!!!
作者: zhiyoudeyy    时间: 2022-1-13 01:02
学习一下
作者: JK1706    时间: 2022-1-13 10:55
111111111111111111111111111111111111111111111111111
作者: gaoqing    时间: 2022-1-13 13:52
谢谢分享
作者: 1347379245    时间: 2022-1-13 19:49
谢谢分享
作者: Conquer    时间: 2022-1-13 19:51
感谢发布原创作品,精易因你更精彩!
作者: wq8602086    时间: 2022-1-14 20:53
奇易模块v5.3.1
作者: 网海拾贝    时间: 2022-1-15 13:36
不错。。。。。。。。。。
作者: 朱克曼    时间: 2022-2-5 18:20
学习一下···!!!!
作者: y95628    时间: 2022-3-26 17:34
感谢,下载学习一下
作者: zaozi    时间: 2022-3-31 17:28
PHP版本有木有
作者: 虎子666    时间: 2024-8-6 12:16
牛逼牛逼




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4