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

卡bin校验主要算法

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

/**
a i5J`D3ag3S0     * 生成银行卡校验码(2121算法)
:bnJ.AE0     *
:zEr \9D[t0     * @param cardNumber51Testing软件测试网z'O;?c0L
     *            - 卡号
't!jyjg#cI0     * @param size
A8` bZ XqDc0     *            - 卡号扣除卡号校验码的长度
8v&A eD!]8g5h0     * @return51Testing软件测试网G&gKo:c%hp
     */
b*JGx?0    public static int LuhnMod10(String cardNumber, int size) {51Testing软件测试网+Z9U"j|3[ t:aN ?"q
        int[][] table = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },51Testing软件测试网LU4Y%o Q*B-fS
                { 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 } };51Testing软件测试网8U z/f8{v b9?
        ;51Testing软件测试网!G J8[ Hs T
        int sum = 0;51Testing软件测试网,_0gPN/oZA#V9y
        for (int i = size - 1, dd = 0; i >= 0; i--) {
1p SG/\*JK0            sum += table[(odd = 1 - odd)][cardNumber.charAt(i) - '0'];51Testing软件测试网3qcQ@yo7^
        }
%s/NAN;Ylr0        sum = sum % 10;
7DE xN"~*t0        return (sum == 0 ? 0 : 10 - sum); /* return the check digit */51Testing软件测试网`*Aj!W-\%fGE9}.m
    }
8@qw.M!~7d:IN p{051Testing软件测试网\ \M8QlW\
    public static boolean checkCardIn2121(String cardno) {51Testing软件测试网%Qr _6j?p&C SI-lG~
        if (cardno == null) {51Testing软件测试网3bYdHHA\'S$CQ
            return false;51Testing软件测试网7?;T_"_0Z"})[n-i
        }51Testing软件测试网:e7YYj-w*lp!g
        if (cardno.length() >= 7) {51Testing软件测试网t9z2L7``u(n8GQD
            int lrc = LuhnMod10(cardno, cardno.length() - 1);51Testing软件测试网3s-G0Tk'sJJ
            if ((cardno.charAt(cardno.length() - 1) - '0') != lrc) {
?["X|8w0                return false;
{ wz$R\:Nw0            } else {51Testing软件测试网$q0ubF f9W7p&v Z aJ|{
                return true;51Testing软件测试网%JJ.O:v`w~
            }
.C8|/oI U:d7m#i6J0        }
T8fO7@xy.@0\0
V$U!S$B+O+K0       
tu'qfzh `0        return false;
["e(A)Q;}X%i5Kd0    }51Testing软件测试网;C8GlkA:?I0a;B
51Testing软件测试网}e,?2N3ypk)TD|T

TAG:

 

评分:0

我来说两句

Open Toolbar