现在在线生成visa master卡号的app一堆一堆的,就是Luhn算法。而且卡号前6位是银行位,这些都是公开的。后面的只要凑到Luhn算法的验证结果就可以了。
你运行这个程序就能判断出一个卡号是不是valid的。
public static bool IsLuhnValid(int[] digits)
{
var sum = 0;
var alt = false;
for (var i = digits.Length - 1; i >= 0; i--)
{
if (alt)
{
digits[i] *= 2;
if (digits[i] > 9)
{
digits[i] -= 9;
}
}
sum += digits[i];
alt = !alt;
}
return sum % 10 == 0;
}
剩下的就是猜cvv和日期,简单枚举就可以了。cvv1000种可能,日期只有年月,并且绝大部分卡都是5年以内的也就是5*12种可能,也就是60种可能。这俩一共就是12万种可能。对计算机来讲,就是一秒钟的事。
所以,现在信用卡业漏洞其实挺大的,毕竟几十年前的技术了。要不是visa,master势力太大,这种落后技术早就淘汰了。