测试管理,自动化测试、手机客户端测试、wap站点测试研究
卡bin校验主要算法
上一篇 /
下一篇 2013-06-27 13:31:26
/ 个人分类:敏捷开发与持续交互
/**
51Testing软件测试网Fr
{`rF0oD5t!L * 生成银行卡校验码(2121算法)
bJ9|6s:X.k"LQ0 *
51Testing软件测试网ErY#n pE m(I'd * @param cardNumber
51Testing软件测试网iJfU S!}5l7T * - 卡号
51Testing软件测试网Y`F `zY&g * @param size
51Testing软件测试网7J@yf%eS * - 卡号扣除卡号校验码的长度
51Testing软件测试网8n:{X;o"tG.S@5k * @return
51Testing软件测试网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.yNA6q$b ;
A!J$x7[0T7N7LB0 int sum = 0;
~&m*w7]Mxi8Y~2j0 for (int i = size - 1, dd = 0; i >= 0; i--) {
$is1Lea0 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#ZD P return false;
/}&FRN+K0 }
51Testing软件测试网
WBz2RX A+r if (cardno.length() >= 7) {
51Testing软件测试网\"~K{!c0Y int lrc = LuhnMod10(cardno, cardno.length() - 1);
51Testing软件测试网mZ#lO 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:OG return true;
51Testing软件测试网*[E'_ K_@IX
e }
51Testing软件测试网vW0JTI,zDkb+a }
51Testing软件测试网d&?
S7Xm51Testing软件测试网)G%l,YCQ 5ZkE,Oaz
\8W0 return false;
!WX(e5SgZZv0 }
51Testing软件测试网}L"sE/g W(q51Testing软件测试网$~D+Ytd z~+Z
收藏
举报
TAG: