您的位置:首页 > 理论基础 > 数据结构算法

Luhn算法​验证银行卡是否有效

2015-10-22 00:00 477 查看
Luhn算法

1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。
2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。
3、将奇数位总和加上偶数位总和,结果应该可以被10整除。
function checkCard($card)
{
$num = 0;
$card = str_split(trim($card));
krsort($card);
$i = 1;
foreach($card as $val){
if ($i % 2) {//奇数
$num += $val;
} else {//偶数
$n = $val * 2;
if ($n > 9) $n -= 9;
$num += $n;
}
$i++;
}
return (($num % 10) == 0);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息