dedecms织梦内容管理系统      

--充电学院首页-- | --IT新闻与咨询-- | --电脑应用技术-- | --网络操作技巧-- | --软件硬件教程-- | --精品资料收藏-- | --其他相关文章-- | --常用优秀软件-- | --桌面图片欣赏-- | --媒体网站资源-- | --火狐专题介绍-- |

  当前位置:主页>网络淘金技法>文章内容
解剖信用卡号码
来源: 作者:方舟 发布时间:2008-04-05  
stvista
这篇文章有较集中--探索解剖学你信用卡号码,并提供源代码,以确定如果某个信用卡号码可能有效.
规格信用卡号码已经制定的国际标准组织(ISO/IEC7812-1:1993)、美国国家标准学会(ANSIx4.13). 这些出色的组织垃圾使其出版物自由地获得联机,所以资料如下的格式计算信用卡号码大部分来源于一个因特网工兵工作队

主要工业标识
< 第一位数 您的信用卡号码识别的主要产业(城市),这是一类实体,您的信用卡发行. 以下是各城市签证数类:

数字城市价值      签证类别  
  0                          ISO/TC68、其他行业转让  
  1                          航空公司  
  2                          航空工业和其他任务  
  3                          旅游、娱乐  
  4                          银行和金融  
  5                          银行和金融  
  6                         商品和银行  
  7                         石油  
  8                        电信业和其他任务  
  9                        国家任务  


例如美国运通、Diner俱乐部,是柔赴港旅游、娱乐类、签证、万事达卡,发现是在银行和金融类、石油及埃克森孙是在石油类.


发行标识
< 前6位 您的信用卡号码(包括城市初步数字)形式发行标识. 这意味着可能发行总数是100万(1910年上升到第六届电力、100万).


部分发行宣传识别资料表列如下:


发行                                   标识                                                          证号码长度
Diner's Club/Carte Blanche         300xxx-305xxx, 36xxxx,38xxxx                    14  
美国运通                                   34xxxx,37xxxx                                                15  
VISA                                            4xxxxx                                                             13, 16  
MasterCard                                 51XXXX-55XXXX                                                16  
Discover                                       6011xx                                                            16  


如果数字城市是9,那么下一个三位数的代码发行的3位数国家代码定义ISO3166,剩下的最后两位数字的发行标识可以按国家标准组织的规定,国家的一切方式希望.


帐号
7位(N-1) 你有你的信用卡号码等个人帐户标识. 最大长度的19位信用卡号码. 从最初的6位数字是信用卡发行标识,最后的数字是检查数字,这意味着最长的帐号是外地19-7、12位. 因此,每个发行有万亿(1012提出的权力,或1,000,000,000,000)可能账号.

如果我们把大量的潜在客户,放高利贷的发行利率,显然有很多钱,可在信用卡业. 年龄在更加文明,人们认为是高利贷等严重违法或违反道德的罪恶本质,不接受业务(亚里斯多德政治1.10. 圣托马斯Aquinas,1340De马洛; Dante,11.94-111地狱. 等等).


检查位数
< 最后数字 您的信用卡号码核对数字,类似于核实. 使用的算法得出正确数字是检查称为Luhn算法,在IBM科学家HansPeterLuhn(1896年至1964年),他被授予美国专利2950048("计算机核查号码")

最succintLuhn算法的描述我发现骇客来自出版 (Phrack冶炼厂) ??(书的名字??):"
有一卡双数数字,每增加一倍多,扣除9位数字编号,如果产品大于9. 全部加起来的数字以及连一倍多数,其后果必然是一个多元、10不是有效证. 如果有卡位的奇数, 即使从事相同的人数增加一倍,而不是数字"

多一点的,甚至有点混乱. 主要问题是你不想双位数字的检查,这当然是轻而易举的数字,从检查,倒退,再隔位数. 见 源代码 详情如下.

实例

这些例子都来自我收到的垃圾邮件2001年8月发行的信用卡. 这个垃圾邮件中的一些画面光滑信用卡号码和样品直接来自两个画面.

4408 0412 3456 7890
一信用卡提供的照片显示的是一张卡4408041234567890多.

主要工业标识(城市)4(银行与金融),发行代码是440804(签证伙伴),帐号是123456789,数字检查是0.

让我们用4408041234567890Luhn检查. 以下表

**连续是最原始的数字.
**排在第二,我们增加了2位候补. 不以二位数字增加了检查.
**排在第三,我们将迫使所有数字小于10,再减去9必要.
**底部连续数载加在一起.


4 , 4  ,0  ,8  ,0  ,4  ,1 , 2  ,3  ,4  ,5 , 6 , 7 , 8 , 9  ,0  
X=248,  4 , X=002 , 8,  X=002 , 4 , X=122  ,2 , X=623  ,4  ,X=2510,  6 , X=1427  ,8,  X=9218 , 0  
8 , 4  ,0,  8  ,0  ,4,  2,  2,  6,  4  ,10 - 9 = 1 , 6,  14 - 9 = 5 , 8  ,18 - 9 = 9,  0  
8,  4 , 0,  8  ,0 , 4,  2  ,2  ,6,  4  ,1  ,6 , 5 , 8 , 9 , 0  
http://www.merriampark.com/anatomycc.htm

如果加上所有的最低位排在一起,我们得到67,而不是10多个,因此,我们的结论是,一些4408041234567890,是无效的信用卡号码.

改变检查数字0至3时,我们到达人数4408041234567893,并通过检查Luhn,由于这笔数字的底部将连续70个,其中10个是由设. 4408041234567893,从表面上来看,一个有效的信用卡号码.

4417 1234 5678 9112
第二信用卡提供的照片显示的是一张卡1234567891124417多.

主要工业标识(城市)4(银行与金融),发行代码是441712(签证伙伴),帐号是345678911,二是核对数字.

让我们用检查Luhn4417123456789112象以往的例子.

4  4  1  7  1  2  3  4  5  6  7  8  9  1  1  2  
X=248  4  X=122  7  X=122  2  X=623  4  X=2510  6  X=1427  8  X=9218  1  X=122  2  
8  4  2  7  2  2  6  4  10 - 9 = 1  6  14 - 9 = 5  8  18 - 9 = 9  1  2  2  
8  4  2  7  2  2  6  4  1  6  5  8  9  1  2  2  

如果加上所有的最低位排在一起,我们得到69,而不是10多个,因此,我们的结论是,一些4417123456789112,是无效的信用卡号码.

通过改变数字检查2至3时,我们到达人数4417123456789113,并通过检查Luhn,由于这笔数字的底部将连续70个,其中10个是由设. 4417123456789113,从表面上来看,一个有效的信用卡号码.

警告
这两个画面中,提供信用卡号码,Luhn检验证明是无效的. 他们改变了他们表面上有效遏制数字. 但如果我是你,我什么都不要试图与他们负责.

爪哇源码
以下是简单级爪哇免费使用,如果你愿意让你不受任何限制或保证.


//---------------------------------------------------------
// Checks for valid credit card number using Luhn algorithm
//---------------------------------------------------------

public abstract class LuhnCheck {

  //--------------------------------
  // Filter out non-digit characters
  //--------------------------------

  private static String getDigitsOnly (String s) {
    StringBuffer digitsOnly = new StringBuffer ();
    char c;
    for (int i = 0; i < s.length (); i++) {
      c = s.charAt (i);
      if (Character.isDigit (c)) {
        digitsOnly.append (c);
      }
    }
    return digitsOnly.toString ();
  }

  //-------------------
  // Perform Luhn check
  //-------------------

  public static boolean isValid (String cardNumber) {
    String digitsOnly = getDigitsOnly (cardNumber);
    int sum = 0;
    int digit = 0;
    int addend = 0;
    boolean timesTwo = false;

    for (int i = digitsOnly.length () - 1; i >= 0; i--) {
      digit = Integer.parseInt (digitsOnly.substring (i, i + 1));
      if (timesTwo) {
        addend = digit * 2;
        if (addend > 9) {
          addend -= 9;
        }
      }
      else {
        addend = digit;
      }
      sum += addend;
      timesTwo = !timesTwo;
    }

    int modulus = sum % 10;
    return modulus == 0;

  }

  //-----
  // Test
  //-----

  public static void main (String[] args) {
    String cardNumber = "4408 0412 3456 7890";
    boolean valid = LuhnCheck.isValid (cardNumber);
    System.out.println (cardNumber + ": " + valid);
    cardNumber = "4408 0412 3456 7893";
    valid = LuhnCheck.isValid (cardNumber);
    System.out.println (cardNumber + ": " + valid);
    cardNumber = "4417 1234 5678 9112";
    valid = LuhnCheck.isValid (cardNumber);
    System.out.println (cardNumber + ": " + valid);
    cardNumber = "4417 1234 5678 9113";
    valid = LuhnCheck.isValid (cardNumber);
    System.out.println (cardNumber + ": " + valid);
  }

}

信用卡是16位的
先按1,3,5,7,9,11,13,15位的数字乘2,如果大于9就减去9,如:第1位是5,5*2=10,10-9=1,
那么就是1,然后把这些数字加起来
再看2,4,6,8,10,12,14,16偶数位的数字,直接加起来。
把奇数位之和与偶数位之和相加除于5
如果余数是0,那么恭喜您,此信用卡号正确,反之错误!

[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·各银行的 BIC / swift code
·网络银行--LibertyReserve图文注
·〖中国工商银行〗网上银行开通详
·网络银行--Click2pay完全教程
·网络银行--PayPal申请、激活全攻
·〖中国农业银行〗网上银行开通详
·如何使用PayPal在name.com注册国
·网络银行知多少
·网络银行--PayPal申请、激活全攻
·网络银行--PayPal申请、激活全攻
·网络银行--Neteller注册与认证教
·网络银行--PayPal申请、激活全攻
  相关文章
·小议网赚EMU
·LEAD注册简介
·信用卡的CVV2生成原理
·流量赚钱(4)
·HYIP新手入门指南
·流量赚钱(3)
·AlertPay简介与注册向导
·流量赚钱(2)
·流量赚钱(1)
·常见的网上基础赚钱方式
·什么是lose?如何利用lose赚钱?
·网络赚钱培训资料——新手网赚教
  兴趣话题
·
·
·全国地图服务
网站为ZQF个人所有 Power by DedeCms 所有文章来自网络,如有冒犯,请email 或 qq告之,谢谢