最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

信用卡卡号验证码

来源:动视网 责编:小OO 时间:2025-10-01 17:49:16
文档

信用卡卡号验证码

信用卡号的最后一个数字,就是输入过程中用来检验卡号是否正确时,所使用的核对数字。虽然此核对演算法早已公开(ISO24),但是目前还是很多人并不清楚它的作法。演算法执行过程如下:1.将卡号上的每个数字乘上其权重(weight),如果卡号上的数字个数是偶数,那么第一个数字的权重就是2,若是奇数,那么权重就给1,剩下来的数字,根据第一个数字依序给定。例如某信用卡卡号的数字个数为偶数,那么从第一位数字开始的权重依序为2、1、2、1、2、1...。2.如果数字乘上自己的权重后比9还大,那么就从这加权
推荐度:
导读信用卡号的最后一个数字,就是输入过程中用来检验卡号是否正确时,所使用的核对数字。虽然此核对演算法早已公开(ISO24),但是目前还是很多人并不清楚它的作法。演算法执行过程如下:1.将卡号上的每个数字乘上其权重(weight),如果卡号上的数字个数是偶数,那么第一个数字的权重就是2,若是奇数,那么权重就给1,剩下来的数字,根据第一个数字依序给定。例如某信用卡卡号的数字个数为偶数,那么从第一位数字开始的权重依序为2、1、2、1、2、1...。2.如果数字乘上自己的权重后比9还大,那么就从这加权
信用卡号的最后一个数字,就是输入过程中用来检验卡号是否正确时,所使用的核对数字。虽然此核对演算法早已公开(ISO 24),但是目前还是很多人并不清楚它的作法。 

演算法执行过程如下: 

    1.将卡号上的每个数字乘上其权重(weight),如果卡号上的数字个数是偶数,那么第一个数字的权重就是2,若是奇数,那么权重就给1,剩下来的数 字,根据第一个数字依序给定。例如某信用卡卡号的数字个数为偶数,那么从第一位数字开始的权重依序为2、1、2、1、2、1 ...。 

    2.如果数字乘上自己的权重后比9还大,那么就从这加权数字里扣除9。 

    3.接下来将所有处理过的加权数字全部加总起来,并且除以10,取其余数。 

    4.此余数应该是0,否则就可能是输入过程有误,也有可能信用卡号是假的。 

这样的算法可以用来检验数字输入过程中可能发生的数字调换、位移等等输入错误。此外这种算法也可以用在其它方面,当作安全装置来使用【注】。如果我们把算法写成Perl程式的话,便如下所示: 

【注】让我们担心的是,某些商家竟使用此演算法当作是检验信用卡正确性的低价方法。然而此方法只能告诉我们卡号输入过程是否错误发生,却无法确切告诉我们信用卡的正确性。只要有心人蓄意造假,业者很可能遭受严重的损失。 

sub validate_cc { 

     local ($cc) = $_[0]; 

     local ($digit,$sum,$val); 

     local ($weight) = 1; 

     $weight = 2 if (length($cc) %2 ==0); 

     while($cc ne ""){ 

             $digit = substr($cc,0,1); 

             $cc = substr($cc,1); 

             $val = $digit * $weight; 

$val-=9 if ($val>9);

             $sum += $val; 

             $weight = ($weight==2) ? 1 : 2; 

     } 

     return ($sum % 10) == 0; 

现在我们举一个实例来看看(读者也可以使用你信用卡号上的数字来试试看)。这是Simson所持有的美国运通卡号码:3728 024906 54059。 

卡号上共有15个数字。所以第一个数字的权重为1,全部的权重分别是1、2、1、2、1、2、1、2、1、2、1、2、1、2、1。我们将每个数字分别乘上它的权重: 

(3 x 1) , (7 x 2) , (2 x 1) , (8 x 2) , (0 x 1) , (2 x 2) , (4 x 1) , (9 x 2) , 

(0 x 1) , (6 x 2) , (5 x 1) , (4 x 2) , (0 x 1) , (5 x 2) , (9 x 1) 

得到它们个别的加权值: 

(3) , (14) , (2) , (16) , (0) , (4) , (4) , (18) , 

(0) , (12) , (5) , (8) , (0) , (10) , (9) 

将所有大于9的加权值扣除9,然后相加: 

(3) + (5) + (2) + (7) + (0) + (4) + (4) + (9) + 

(0) + (3) + (5) + (8) + (0) + (1) + (9) = 60 

最后将所有值相加,并且除以10,我们所得到的结果果然是0。 

60 mod 10 = 0 

请注意:千万别冒用Simson的信用卡帐号。冒用信用卡是条重罪。 

信用卡交易核对单 

信用卡交易核对单可以让我们清楚知道当次的交易讯息。在过去某段时间内,它都是使用纸条来进行记录,并且在每次信用交易之后必须拿给客户核对。渐 渐地服务商发觉使用纸条的费用过高,不够经济,所以在1970年代中期,Visa与MasterCard改变原有运作方式,每个月将信用交易资料总结后, 才把核对单送回给客户以供核对使用。 1980年代,美国运通公司开始将所有核对单资料数位化,并将交易讯息列印出来送回给客户进行确认。现在,客户已经很难见到最原始的核对单了。 

随着时间推移,交易核对单上的资讯也持续地增加中。下面所列出的要项是核单资料 不可漏缺的部分: 

     *客户姓名 

     *客户的信用卡号码 

     *客户的住址 

     *客户编号 

     *交易日期 

     *交易金额 

     *商品或是服务的种类 

     *单据号码 

     *授权代码 

     *销售商的名称 

虽然过去20年来,电脑已经逐渐取代传统的文件作业方式,但是原有的文件内容我们仍须完整保留下来,因为这些文件资料有很重要的价值,它们能够协助我们调查过去的交易记录,并且提供我们信用诈欺事件的线索。

文档

信用卡卡号验证码

信用卡号的最后一个数字,就是输入过程中用来检验卡号是否正确时,所使用的核对数字。虽然此核对演算法早已公开(ISO24),但是目前还是很多人并不清楚它的作法。演算法执行过程如下:1.将卡号上的每个数字乘上其权重(weight),如果卡号上的数字个数是偶数,那么第一个数字的权重就是2,若是奇数,那么权重就给1,剩下来的数字,根据第一个数字依序给定。例如某信用卡卡号的数字个数为偶数,那么从第一位数字开始的权重依序为2、1、2、1、2、1...。2.如果数字乘上自己的权重后比9还大,那么就从这加权
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top