顺德网站制作案例市场,网站后台问题,网站怎么做双机房切换,企业外贸营销型网站联通iccid 19转20 使用luhn 算法的计算公式
第一次对接iccid 才知道 使用的是luhn 算法 19转20位
文章来源于 文章来源
当时也是一脸懵逼 的状态#xff0c;然后各种chatgpt 寻找#xff0c;怎么找都发现不对#xff0c;最后看到这片java的文章实验是正确的#xff0c;因…联通iccid 19转20 使用luhn 算法的计算公式
第一次对接iccid 才知道 使用的是luhn 算法 19转20位
文章来源于 文章来源
当时也是一脸懵逼 的状态然后各种chatgpt 寻找怎么找都发现不对最后看到这片java的文章实验是正确的因为像这种好多鉴权、加密、升级等都是java的还没有文档只能试着去碰最后终于对了
原文的思路然后从java 改成php
ICCID共20位, 最后一位的校验位计算规则如下: 取前19位 . 从左到右奇数位开始. 乘以2 然后计算个位与十位数之和. 将所有偶数位的数字与上一步得到的值全部相加 将上一步得到的值乘以9 然后取余. 得到的值就是第20位的校验位
例: 89860262191507034404 最后一位校验位是4 第三行相加 169166021222925070384076
最后 76*9 684
校验位就是 684%104 各位可以到 验证该计算方法.
代码如下希望能帮到大家
/*** param string $iccid* return int|string*/public function checkLuhn($iccid ){$strLen strlen($iccid);if ($strLen 19) {$rest 0;for ($i 0; $i $strLen; $i) {if($i % 2 0){$oddNum $iccid[$i] * 2;$rest intval($oddNum / 10) $oddNum % 10;} else {$rest $iccid[$i];}}$rest $rest * 9;$str $rest % 10;} else {$str 6;}return $iccid. $str;}