求SIM卡内数据ICCID最后一位的算法.

三断笛 2012-01-03 08:45:11
SIM卡都有一个唯一的20位ICCID.
印在卡上的最后一位是字母,代表厂商,而记录在卡内的ICCID最后一位却是一个数字,它是一个校验位.
我想知道这个校验位的算法.
100分求教.
...全文
2038 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a4401522 2014-09-20
  • 打赏
  • 举报
回复
引用 3 楼 woshi_ziyu 的回复:
Luhn计算模10 “隔位2倍加”校验数的公式 计算步骤如下:1、从右边第一个数字(低序)开始每隔一位乘以2。2、把在步骤1中获得的乘积的各位数字与原号码中位乘2的各位数字相加求和。3、从步骤2中获得的数字邻近的较高的以0结尾的数字减去该数字(即求这个总和的低位数字(个位数)的“10的补数”)。如果在步骤2中得到的总和是以0结尾的数,则校验数字就是0。
刚才跟贴了才注意到,有多张ICCID前面19位是相同的,仅仅是最后一位本该作为校验位的却不同,会不会是有些地方的ICCID不遵循国际规则? 89860080191445601050 89860080191445601054
a4401522 2014-09-20
  • 打赏
  • 举报
回复
引用 3 楼 woshi_ziyu 的回复:
Luhn计算模10 “隔位2倍加”校验数的公式 计算步骤如下:1、从右边第一个数字(低序)开始每隔一位乘以2。2、把在步骤1中获得的乘积的各位数字与原号码中位乘2的各位数字相加求和。3、从步骤2中获得的数字邻近的较高的以0结尾的数字减去该数字(即求这个总和的低位数字(个位数)的“10的补数”)。如果在步骤2中得到的总和是以0结尾的数,则校验数字就是0。
你好,按照你这算法,我拿了多个ICCID来试算,结果都不对,我列几个保证百分百正确的ICCID,麻烦你试算一下好吗? 89860080191445601049 89860080191445601050 89860080191445601054
a4401522 2014-09-20
  • 打赏
  • 举报
回复
引用 1 楼 xxyj6450 的回复:
已解决. 校验码算法(LUHN算法) 跟帖着有分.
你好,请教一下ICCID第20位校验码的生成规则是什么?如果可以麻烦你给我一份4401522@qq.com 谢谢
msnildsl 2012-08-01
  • 打赏
  • 举报
回复
写了一个程序来算http://dl.twin.walkbox.vip.xunlei.com/download?g=EC8A4A9077CB7412960248ACA4839BCB792640DB&scn=cnc2&dt=3&ui=31270844&ni=3e1dcb53-b8f8-44a4-a25c-16e91ed58be2&s=14396&fv=2&st=1&n=0B4EB26852ED7B4B4427A57D69AE380200
woshi_ziyu 2012-02-16
  • 打赏
  • 举报
回复
Luhn计算模10 “隔位2倍加”校验数的公式 计算步骤如下:1、从右边第一个数字(低序)开始每隔一位乘以2。2、把在步骤1中获得的乘积的各位数字与原号码中位乘2的各位数字相加求和。3、从步骤2中获得的数字邻近的较高的以0结尾的数字减去该数字(即求这个总和的低位数字(个位数)的“10的补数”)。如果在步骤2中得到的总和是以0结尾的数,则校验数字就是0。
satan_emperor 2012-02-15
  • 打赏
  • 举报
回复
学习了!感谢楼主的无私精神,解决以后还提供了答案!
三断笛 2012-01-04
  • 打赏
  • 举报
回复
已解决.
校验码算法(LUHN算法)

跟帖着有分.

3,846

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧