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 相关文章推荐
如何去掉文章里的 html 语法
Oct 09 PHP
PHP+APACHE实现用户论证的方法
Oct 09 PHP
收藏的一个php小偷的核心程序
Apr 09 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
PHP中文编码小技巧
Dec 25 PHP
php操作memcache缓存方法分享
Jun 03 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
解决php扩展安装不生效问题
Oct 25 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
针对初学PHP者的疑难问答(2)
2006/10/09 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
php微信开发之图片回复功能
2018/06/14 PHP
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
python学生管理系统
2019/01/30 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
2014的自我评价
2014/01/13 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
会计学专业求职信
2014/07/17 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS