目录:
在信用卡上,校验和是帐号中的一位数,允许计算机或熟悉所涉及公式的任何人确定该号码是否有效。校验和可以帮助识别输入错误的信用卡号码 - 或伪造者创建的虚假信用卡号码。
校验
校验和是嵌入在一组数据中的值。校验和为您提供了一种快速方法,可以确定在存储或传输过程中是否已将错误引入该数据集。可以把它想象成一个带有大量交货的装箱单。确保在运输过程中没有丢失任何东西的方法是检查装箱单上的每个项目。当您处理数据时,确保信息完整到达的方法是根据校验和进行检查。
检查数字
在信用卡上,校验和采用“校验位”的形式。在典型的16位信用卡号码中,前六位数字表示发卡的机构。接下来的九位数字标识与卡相关联的个人帐户。最后一位,即第16位,是校验位。信用卡发卡机构将前15位数字插入称为Luhn算法的数学公式中,该算法产生一位数的结果。该结果成为校验位。
目的
校验位的主要目的是验证卡号是否有效。假设您在网上购物,并且通过切换两位数的位置错误地输入您的信用卡号码,这可能是最常见的错误。当网站查看您输入的号码并将Luhn算法应用于前15位数时,结果将与您输入的数字的第16位数字不匹配。计算机知道该号码无效,并且如果它尝试提交购买以供批准,则它知道该号码将被拒绝。所以它要求你重新输入号码。校验位的第二个目的是阻止创建虚假信用卡号码的笨拙尝试。然而,熟悉Luhn算法的伪造者可以克服这个特殊的障碍。
行动中的算法
验证16位卡号始于前15位数字,即机构代码和个人帐户标识符。例如,在卡号4578 4230 1376 9219中,这些数字将是:
4-5-7-8-4-2-3-0-1-3-7-6-9-2-1
从第一个数字开始,将每秒的数字乘以2:
8-5-14-8-8-2-6-0-2-3-14-6-18-2-2
每次有两位数的数字时,只需将这些数字加在一起即可获得一位数的结果:
8-5-5-8-8-2-6-0-2-3-5-6-9-2-2
最后,将所有数字加在一起:
8 + 5 + 5 + 8 + 8 + 2 + 6 + 0 + 2 + 3 + 5 + 6 + 9 + 2 + 2 = 71
当此数字添加到校验位时,结果必须是10的偶数倍。在这种情况下:
71 + 9 = 80
因此该号码有效。如果算法不产生10的倍数,则卡号无效。