测试管理,自动化测试、手机客户端测试、wap站点测试研究

卡bin校验主要算法

上一篇 / 下一篇  2013-06-27 13:31:26 / 个人分类:敏捷开发与持续交互

/**51Testing软件测试网 Fr {`rF0oD5t!L
     * 生成银行卡校验码(2121算法)
bJ9|6s:X.k"L Q0     * 51Testing软件测试网ErY#n pEm(I'd
     * @param cardNumber51Testing软件测试网iJf U S!}5l7T
     *            - 卡号51Testing软件测试网Y`F`zY&g
     * @param size51Testing软件测试网7J@yf%eS
     *            - 卡号扣除卡号校验码的长度51Testing软件测试网8n:{X;o"tG.S@5k
     * @return51Testing软件测试网RX-~|9K
     */51Testing软件测试网PYB7Xfc
    public static int LuhnMod10(String cardNumber, int size) {
yOL1TvB*Xc%GI)N0        int[][] table = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },51Testing软件测试网Oa7a4r"vn7L
                { 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 } };51Testing软件测试网f.yN A6q$b
        ;
A!J$x7[0T7N7LB0        int sum = 0;
~&m*w7]Mxi8Y~2j0        for (int i = size - 1, dd = 0; i >= 0; i--) {
$i s1Lea0            sum += table[(odd = 1 - odd)][cardNumber.charAt(i) - '0'];51Testing软件测试网LUP|G/i-t}
        }51Testing软件测试网 ^p\(WU
        sum = sum % 10;51Testing软件测试网8[*L4O~ E1u ?
        return (sum == 0 ? 0 : 10 - sum); /* return the check digit */
G.DF4`A0    }
2\C!Nvd_b$a1zk0
~I\6DNB*e0    public static boolean checkCardIn2121(String cardno) {
J(@/S%q(A(s0        if (cardno == null) {51Testing软件测试网,R0h{~4U#ZDP
            return false;
/}&FRN+K0        }51Testing软件测试网 WBz2RX A+r
        if (cardno.length() >= 7) {51Testing软件测试网\"~K{!c0Y
            int lrc = LuhnMod10(cardno, cardno.length() - 1);51Testing软件测试网mZ#l O D*gO
            if ((cardno.charAt(cardno.length() - 1) - '0') != lrc) {51Testing软件测试网H+^ I%cS e5R0W,V
                return false;51Testing软件测试网 N*{:U:` @%rz
            } else {51Testing软件测试网Fi3nZ4Y:O G
                return true;51Testing软件测试网*[E'_ K_@IX e
            }51Testing软件测试网vW0J TI,zDkb+a
        }51Testing软件测试网d&? S7X m
51Testing软件测试网)G%l,YCQ
       
5ZkE,Oaz \8W0        return false;
!WX(e5SgZZv0    }51Testing软件测试网}L"sE/g W(q
51Testing软件测试网$~D+Ytdz~+Z

TAG:

 

评分:0

我来说两句

Open Toolbar