本帖最后由 我的心上了锁 于 2021-7-23 21:31 编辑 在我上个帖子说明了信用卡卡号可以自定义,如有兴趣的网友可以参考我上个帖子,现在来说一下卡号的校验规则。很多网友说卡号最后一位校验位是完全随机的,其实并不是,它是有规律的,而且,除了卡BIN(卡号前6位)之外的所有位数的卡号都可以称为校验位。这个帖子主要举一个例子。就是我们论坛非常火的香白卡,拿其中的银联卡号(卡BIN 622599)作为案例说明,另一张VISA(卡BIN413521)及万事达(卡BIN527661)同理。
首先卡BIN即卡号前6位不可更改,不再赘述。
以该卡号为例6225990188888888,这个卡号是不符合工行系统的校验规则的。什么意思呢?意思就是如果我们柜员输入这个卡号,系统会显示“校验失败”。所以我们需要改动其中的一位或者某几位数来符合它的校验规则。从卡号的第7位至末位(第16位)之间所有的数我们都可以更改,假如我们限定了后8位不变(即我们限定了后8位为88888888),那么我们可以更改第7位及第8位数(即上述卡号中的0和1)
其中0我们称为第7位
其中1我们称为第8位
首先我们保持第8位的1不变,我们把第七位的0从0一直到9进行更换,会发现总有一位数可以通过。
假如说我们发现第7位的0改为2可以通过校验,那么说明6225992188888888,这个卡号是正确的。那么下一个用来验证的号段的卡号是什么呢?我们拿其中的“21”来说,把这个数字加8得到的数就是下一个号段,但是我们发现21 8=29,按常理来讲,不可能出现第七位相同且第8位不同的号码都符合校验规则。所以这时候我们要把第七位进1,也就是39,即下一个号段一定是6225993988888888,同理我们把39 8后得到再下一个号段为6225994788888888.
比较特殊的情况是从第7位的4进到5的情况,一旦发现第七位是4,我们加8之后第7位变为5,那么这个时候我们要在原来的号码基础上加7而不是加8.
也就是6225994788888888下一个号段是6225995488888888,再下一个号段依然是加8,(只有从4进5是加7,其他情况都是加8),我们得到下一个号段为6225996288888888,以此类推6225997088888888,下一个号段又发生上面的例子,不可能同时出现70及78的卡号都符合校验规则,我们依然要把第7位进1,得到的卡号为6225998888888888,再最后一号段为6225999688888888.
知道了这个校验规则,我们让前台柜员办理业务的时候,可以节省大量的时间去验证。