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 相关文章推荐
使用TinyButStrong模板引擎来做WEB开发
Mar 16 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
php采集时被封ip的解决方法
Aug 29 PHP
解析php dirname()与__FILE__常量的应用
Jun 24 PHP
php cookie中点号(句号)自动转为下划线问题
Oct 21 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 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 计划任务 检测用户连接状态
2012/03/29 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
php中stdClass的用法分析
2015/02/27 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
php强制下载文件函数
2016/08/24 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Python3分析处理声音数据的例子
2019/08/27 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
Django中的AutoField字段使用
2020/05/18 Python
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
装潢设计专业推荐信模板
2013/11/26 职场文书
小学英语教学反思
2014/01/30 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
护理专科自荐书范文
2014/02/18 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js