php实现信用卡校验位算法THE LUHN MOD-10示例


Posted in PHP onMay 07, 2014

按照ISO 2894中支付卡校验位的算法 The Luhn Mod-10 Method 规定:

1、对卡号上的每位数字乘以权重。其规则是,如果卡号数字个数是偶数,则第一位乘以2,否则就乘以1,然后以后分别是,1,2,1,2,1,2;
2、如果每位数字乘以权重后超过9 ,则需要减去 9;
3、将所有的处理过的加权数字求和,用 数字 10 求模运算;
4、余数应该是0,否则可能是输入错误。也可能是一个假号。
 顺手PHP简单实现下,实际场景前端验证好一些,例如JS。

 

 function check_card($card){  
    if (!is_numeric($card)) return False;  
    $card_len = strlen($card);  
    $i = 0;  
    $num_i = array();  
    do{  
        if (!$i){  
            $num_x = $card_len % 2 ? 1 : 2;  
        } else {  
            $num_x = $num_x == 1 ? 2 : 1;      
        }  
        $num_i[$i] = (int)$card[$i] * $num_x;  
        $num_i[$i] = $num_i[$i] > 9 ? $num_i[$i] - 9 : $num_i[$i];      }while(isset($card[++$i]));  
    $num_sum = array_sum($num_i);  
    return $num_sum % 10 ? False : True;  
}  
 
PHP 相关文章推荐
PHP与SQL注入攻击[二]
Apr 17 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
php实现简单文件下载的方法
Jan 30 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
PHP延迟静态绑定的深入讲解
Apr 02 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 PHP
详解Go与PHP的语法对比
May 29 PHP
php对称加密算法示例
May 07 #PHP
php实现mysql封装类示例
May 07 #PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 #PHP
php读取3389的脚本
May 06 #PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
May 06 #PHP
php通过数组实现多条件查询实现方法(字符串分割)
May 06 #PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 #PHP
You might like
农民C键的运用技巧
2020/03/04 星际争霸
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
PHP伪静态写法附代码
2008/06/20 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
Python编程实现正则删除命令功能
2017/08/30 Python
flask应用部署到服务器的方法
2019/07/12 Python
python如何将两个txt文件内容合并
2019/10/18 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
pytorch forward两个参数实例
2020/01/17 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
flask框架中的cookie和session使用
2021/01/31 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
酒店管理毕业生自我鉴定
2014/03/02 职场文书
学历公证书范本
2014/04/09 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
box-shadow单边阴影的实现
2023/05/21 HTML / CSS