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 相关文章推荐
模仿OSO的论坛(五)
Oct 09 PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
php文档更新介绍
Jul 22 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
PHP往XML中添加节点的方法
Mar 12 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
Aug 18 PHP
php提交post数组参数实例分析
Dec 17 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
PHP simplexml_load_file()函数讲解
Feb 03 PHP
PHP7匿名类的用法示例
Apr 05 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
星际实力自我测试
2020/03/04 星际争霸
PHP 中执行系统外部命令
2006/10/09 PHP
PHP中一个控制字符串输出的函数
2006/10/09 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
php通过会话控制实现身份验证实例
2016/10/18 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
Python脚本暴力破解栅栏密码
2015/10/19 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
基于python实现简单日历
2018/07/28 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
opencv实现简单人脸识别
2021/02/19 Python
python实现横向拼接图片
2020/03/23 Python
Python内置函数locals和globals对比
2020/04/28 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
园林设计专业毕业生求职信
2014/03/23 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
如何用JavaScipt测网速
2021/05/09 Javascript