Php 使用Luhn'进行信用卡验证;s
我正在使用Luhn算法进行信用卡验证:我只需要看看这个号码是否是有效的信用卡号码Php 使用Luhn'进行信用卡验证;s,php,credit-card,luhn,Php,Credit Card,Luhn,我正在使用Luhn算法进行信用卡验证:我只需要看看这个号码是否是有效的信用卡号码 $number=clean($_GET['number']); if (LuhnCheck($number) == 0) { echo "credit card valid"; } else { echo "invalid"; } function LuhnCheck($strDigits) { $sum = 0; $alt = false;
$number=clean($_GET['number']);
if (LuhnCheck($number) == 0)
{
echo "credit card valid";
}
else
{
echo "invalid";
}
function LuhnCheck($strDigits)
{
$sum = 0;
$alt = false;
for($i = strlen($strDigits) - 1; $i >= 0; $i--)
{
if($alt)
{
$temp = $strDigits[$i];
$temp *= 2;
$strDigits[$i] = ($temp > 9) ? $temp = $temp - 9 : $temp;
}
$sum += $strDigits[$i];
$alt = !$alt;
}
return $sum % 10 == 0;
}
上述内容是否适用于美国运通、discover、visa和万事达卡?我无法确认。这里有一个jquery插件:
还有一个关于银行卡号的维基条目
编辑:
还有一个php脚本:根据Wikipedia,所有卡号都使用了。美国运通属于旅游和娱乐类,因此其编号以
3
开头。Discover、Visa和Mastercard属于银行和金融类别,因此它们的编号以4
或5
开头(Discover也属于商品销售,因此它们的编号也以6
开头)
简而言之,如果您的代码实现了Luhn算法,是的,它将适用于美国运通、Discover、Visa和万事达卡。当存在巨大的潜在风险时,不要重新发明轮子 有许多经过验证的库—这里有一个:
您想在不测试的情况下部署信用卡验证程序吗?此处不接受代码审查问题。这不是一个免费的软件测试服务。也许他确实测试了它,而他的卡不是其中之一。。嗯。。。没关系,网上有很多虚拟信用卡的资料。不过,它们通常是不同的,这取决于您打算在哪里使用它们。记住,他们仍然应该使用算法。客户端验证解决方案还不够好,ZEND应该是最简单的方法。谢谢@我不是在要求代码审查。我没有所有的卡片。我会考虑FuzzyUnlop和CanSpice的建议。链接似乎已断开。链接再次未断开