1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <HTML><HEAD><TITLE>银行卡号生成器</TITLE>
3 <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
4 <meta content="all" name="robots" />
5 <meta name="author" content="Sunny V" />
6 <meta name="Contact" content="tool.la@gmail.com" />
7 <meta name="Copyright" content="www.Tool.La" />
8 <link rel="icon" href="/favicon.ico" type="image/x-icon" />
9 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
10 <STYLE type=text/css>
11 HTML BODY TABLE {
12 FONT-WEIGHT: normal; FONT-SIZE: 12px; COLOR: #7777ee; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
13 }
14 .edgenormal {
15 FONT-WEIGHT: normal; FONT-SIZE: 12px; COLOR: #7777ee; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
16 }
17 .edgebig {
18 FONT-WEIGHT: bold; FONT-SIZE: 16px; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
19 }
20 .edgeboardctitle {
21 FONT-WEIGHT: bold; FONT-SIZE: 14px; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
22 }
23 .edgeatitle {
24 FONT-WEIGHT: bold; FONT-SIZE: 18px; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
25 }
26 .edgeatext {
27 FONT-WEIGHT: normal; FONT-SIZE: 13px; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
28 }
29 .edgeasubj {
30 FONT-WEIGHT: normal; FONT-SIZE: 14px; FONT-STYLE: italic; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
31 }
32 .edgeadate {
33 FONT-WEIGHT: normal; FONT-SIZE: 8pt; FONT-STYLE: normal; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
34 }
35 .edgestitle {
36 FONT-WEIGHT: bold; FONT-SIZE: 14px; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
37 }
38 .edgestext {
39 FONT-WEIGHT: normal; FONT-SIZE: 12px; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
40 }
41 .edgessubj {
42 FONT-WEIGHT: normal; FONT-SIZE: 8pt; FONT-STYLE: normal; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
43 }
44 .edgedotitle {
45 FONT-WEIGHT: bold; FONT-SIZE: 14px; BACKGROUND: #000000; FONT-FAMILY: Verdana,Arial,Helvetica; TEXT-DECORATION: none
46 }
47 .edgesmall {
48 FONT-SIZE: 8pt; FONT-FAMILY: arial,helvetica; TEXT-DECORATION: none
49 }
50 .edgemenu {
51 FONT-WEIGHT: bold; FONT-SIZE: 8pt; FONT-FAMILY: arial,helvetica; TEXT-DECORATION: none
52 }
53 .edgemenuborder {
54 BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: black 1px solid; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; BACKGROUND: #242424; PADDING-BOTTOM: 3px; BORDER-LEFT: black 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: arial,helvetica; TEXT-DECORATION: none
55 }
56 .selectinput {
57 BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 8pt; BORDER-LEFT-COLOR: #7777ee; BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #7777ee; COLOR: #7777ee; BORDER-TOP-COLOR: #7777ee; FONT-FAMILY: arial,helvetica; BACKGROUND-COLOR: #000000; BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #7777ee
58 }
59 .submitinput {
60 BORDER-TOP-WIDTH: 1px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 8pt; BORDER-LEFT-COLOR: #7777ee; BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #7777ee; COLOR: #7777ee; BORDER-TOP-COLOR: #7777ee; FONT-FAMILY: arial,helvetica; BACKGROUND-COLOR: #000000; BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #7777ee
61 }
62 UL {
63 PADDING-RIGHT: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 0px; MARGIN-LEFT: 15px; PADDING-TOP: 0px
64 }
65 .STYLE1 {
66 COLOR: #ff0000
67 }
68 .STYLE2 {
69 font-size: 14px;
70 font-weight: bold;
71 }
72 </STYLE>
73 <META content="MSHTML 6.00.2800.1106" name=GENERATOR>
74 </HEAD>
75 <BODY>
76 <link href="../css/tool.css" rel="stylesheet" type="text/css" />
77 <link href="/css/css.css" rel="stylesheet" type="text/css" />
78 <DIV align="center">
79 <div id="title_tabs">
80
81 </div>
82 <div align="center" class="title_div">
83
84 <!-- <div style="padding-bottom:2px;" class="ad-daohang">
85 <script type="text/javascript">google_ad_client = "pub-5323028865159648";
86 google_ad_slot = "6221500675";
87 google_ad_width = 728;
88 google_ad_height = 15;
89 //
90 </script>
91 <script type="text/javascript"
92 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
93 </script>
94 </div> -->
95 </div>
96 </DIV><noscript><iframe src=*></iframe></noscript> <SCRIPT language=JavaScript>if(self!=top){top.location=self.location;}</SCRIPT>
97 <SCRIPT language=JavaScript>
98
99 <!-- Copyright (C) 2000 Valerio Capello (valcap@thepentagon.com)
100
101 function init() {
102 undefined = "undefined";
103 mkCClist();
104 }
105
106 function ccchk(cdi) {
107 document.console.output1.value = "";
108 if (cdi != "" && cdi != null) {
109 document.console.output1.value = "Processing...";
110 var cf = sbtString(cdi, " -/abcdefghijklmnopqrstuvwyzABCDEFGHIJLMNOPQRSTUVWYZ|#()[]{}?%&=!?+*.,;:'");
111 var cn = chkCard(cf);
112 var clcd = chkLCD(cf);
113 var clcdt = "NOT PASSED";
114 if (clcd) {
115 clcdt = "PASSED";
116 }
117 var ccck = chkCCCksum(cf, cn);
118 var ccckt = "NOT PASSED";
119 if (ccck) {
120 ccckt = "PASSED";
121 }
122 var cjd = "INVALID CARD NUMBER";
123 if (clcd && ccck) {
124 cjd = "This card number appears to be valid.";
125 }
126 var out = "";
127 out += "Card type : " + cn + "
";
128 out += "CCChecksum : " + ccckt + "
";
129 out += "Luhn Check Digit: " + clcdt + "
";
130 out += cjd;
131 document.console.output1.value = out;
132 }
133 }
134
135 function ccngen(p, tr) {
136 tr *= 1.0;
137 if (tr < 1 || tr == null) {
138 tr = 1;
139 }
140 document.console.output2.value = "";
141 if (p != "" && p != null) {
142 var cn = chkCard(p);
143 for (var i = tr; i >= 1; i--) {
144 document.console.output2.value = "Processing... " + i;
145 var cdi = sbtStringSpRnd(p, "x", "0123456789");
146 //var cdi = "6222023605478244406";
147 var cf = sbtString(cdi, " -/abcdefghijklmnopqrstuvwyzABCDEFGHIJLMNOPQRSTUVWYZ");
148
149 var clcd = chkLCD(cf);
150 var ccck = chkCCCksum(cf, cn);
151 if (clcd && ccck) {
152 break;
153 }
154 }
155 var out = "Couldn't find any valid number for given pattern";
156 if (clcd && ccck) {
157 var cn = chkCard(cdi);
158 var ccnspc = "";
159 for (var j = 0; j <= 3; j++) {
160 if (document.console.ccnsp.options[j].selected) {
161 break;
162 }
163 }
164 if (j == 1) {
165 ccnspc = " ";
166 }
167 if (j == 2) {
168 ccnspc = "-";
169 }
170 var cdif = "";
171 for (var i = 1; i <= cdi.length; i++) {
172 var aS = midS(cdi, i, 1);
173 if (aS == " ") {
174 aS = ccnspc;
175 }
176 cdif += aS;
177 }
178 var out = "Valid " + cn + " # found:
" + cdif;
179 }
180 document.console.output2.value = out;
181 }
182 }
183
184 function chgccp() {
185 mkCClist();
186 for (var j = 0; j <= tw - 1; j++) {
187 if (document.console.ccpp.options[j].selected) {
188 break;
189 }
190 }
191 document.console.ccp.value = c[j + 1];
192 }
193
194 function chkCard(cdi) {
195 cdi += "";
196 if (c[1] == undefined || c[1] == null || c[1] == "") {
197 mkCClist();
198 }
199 var ccn = 0;
200 var cn = "unknown"
201 var cf = sbtString(cdi, " -/abcdefghijklmnopqrstuvwyzABCDEFGHIJLMNOPQRSTUVWYZ");
202 if (leftS(cf, 1) == "4") {
203 cf = leftS(cf, 8);
204 }
205 for (var i = 1; i <= tw; i++) {
206 var cct = sbtString(c[i], " -/abcdefghijklmnopqrstuvwyzABCDEFGHIJLMNOPQRSTUVWYZ");
207 if (leftS(cf, 1) == "4") {
208 cct = leftS(cct, 8);
209 }
210 var ccc = cmpPattern(cf, cct);
211 if (ccc) {
212 ccn = i;
213 break;
214 }
215 }
216 if (ccn > 0) {
217 cn = cd[i];
218 }
219 return cn;
220 }
221
222 function chkCCCksum(cf, cn) {
223 var r = false;
224 var w = "21";
225 // if (linstr(cn,"AmEx") || linstr(cn,"Diner")) {var w="12";}
226 //ml为卡号除了最后一位的所有位置上的数 奇数位乘以2取结果的各个位上的数字之和,偶数位不变
227 var ml = "";
228 var j = 1;
229 for (var i = 1; i <= cf.length - 1; i++) {
230 //m为卡号奇数位乘以2,卡号偶数位乘以1
231 var m = midS(cf, i, 1) * midS(w, j, 1);
232 //如果m的长度大于1则取每个位置上的数的总和
233 m = sumDigits(m);
234 ml += "" + m;
235 j++;
236 if (j > w.length) {
237 j = 1;
238 }
239 }
240 //ml2为ml全部位上的数值之和
241 var ml2 = sumDigits(ml, -1);
242 //ml1为 ml2全部位上的数值之和*10-ml2 然后除以10的余数
243 var ml1 = (sumDigits(ml2, -1) * 10 - ml2) % 10;
244 //如果ml1为卡号最后一位则返回true
245 if (ml1 == rightS(cf, 1)) {
246 r = true;
247 }
248 return r;
249 }
250
251 function chkLCD(cf) {
252 var r = false;
253 cf += "";
254 //bl为卡号长度是否能被2整除
255 var bl = isdiv(cf.length, 2);
256 var ctd = 0;
257 for (var i = 1; i <= cf.length; i++) {
258 //cdg为卡号的每一位数字
259 var cdg = midS(cf, i, 1);
260 //如果位数的奇偶和卡号长度的奇偶不一致则cdg等于卡号位于该位的数字乘以2
261 if (isdiv(i, 2) != bl) {
262 cdg *= 2;
263 //如果cdg大于9,则cdg等于cdg-9
264 if (cdg > 9) {
265 cdg -= 9;
266 }
267 }
268
269 ctd += cdg * 1.0;
270 }
271 //如果ctd能被10整除则返回true
272 if (isdiv(ctd, 10)) {
273 r = true;
274 }
275 return r;
276 }
277
278 function mkCClist() {
279 tw = 4;
280 c = new makeArray(tw);
281 cd = new makeArray(tw);
282 var i = 1;
283 c[i] = "622202360547xxxxxxx";
284 cd[i] = "工商银行"; i++;
285 c[i] = "622617310xxxxxxx";
286 cd[i] = "民生银行"; i++;
287 c[i] = "621799290001xxxxxxx";
288 cd[i] = "邮政储蓄银行"; i++;
289 c[i] = "621790080000xxxxxxx";
290 cd[i] = "中国银行"; i++;
291 }
292
293 // Powered by MilkieX - http://www.ElfQrin.com
294
295 function leftS(aS, n) {
296 aS += "";
297 var rS = "";
298 if (n >= 1) {
299 rS = aS.substring(0, n);
300 }
301 return rS;
302 }
303
304 function rightS(aS, n) {
305 aS += "";
306 var rS = "";
307 if (n >= 1) {
308 rS = aS.substring(aS.length - n, aS.length);
309 }
310 return rS;
311 }
312
313 function midS(aS, n, n2) {
314 aS += "";
315 var rS = "";
316 if (n2 == null || n2 == "") {
317 n2 = aS.length;
318 }
319 n *= 1;
320 n2 *= 1;
321 if (n < 0) {
322 n++;
323 }
324 rS = aS.substring(n - 1, n - 1 + n2);
325 return rS;
326 }
327
328 function linstr(aS, bS) {
329 aS += "";
330 bS += "";
331 var r = false;
332 if (leftS(aS, bS.length) == bS) {
333 r = true;
334 }
335 return r;
336 }
337
338 function sbtString(s1, s2) {
339 var ous = "";
340 s1 += "";
341 s2 += "";
342 for (var i = 1; i <= s1.length; i++) {
343 var c1 = s1.substring(i - 1, i);
344 var c2 = s2.indexOf(c1);
345 if (c2 == -1) {
346 ous += c1;
347 }
348 }
349 return ous;
350 }
351
352 function sbtStringSpRnd(s1, s2, bS) {
353 if (bS == null || bS == "") {
354 bS = "0123456789";
355 }
356 var ous = "";
357 bS += "";
358 for (var i = 1; i <= s1.length; i++) {
359 var c1 = s1.substring(i - 1, i);
360 var c2 = s2.indexOf(c1);
361 if (c2 == -1) {
362 ous += c1;
363 } else {
364 ous += midS(bS, Math.floor(Math.random() * (bS.length - 1)) + 1, 1);
365 }
366 }
367 return ous;
368 }
369
370 function cmpPattern(a, p, x) {
371 if (x == "" || x == null) {
372 x = "x";
373 }
374 x = "" + x.substring(0, 1);
375 a += "";
376 p += "";
377 r = false; mc = 0;
378 if (a.length == p.length) {
379 for (var i = 1; i <= a.length; i++) {
380 a1 = midS(a, i, 1);
381 p1 = midS(p, i, 1);
382 if (a1 == p1 || p1 == x) {
383 mc++;
384 }
385 }
386 }
387 if (mc == a.length) {
388 r = true;
389 }
390 return r;
391 }
392
393 function isdiv(a, b) {
394 if (b == null) {
395 b = 2;
396 }
397 a *= 1.0;
398 b *= 1.0;
399 var r = false;
400 if (a / b == Math.floor(a / b)) {
401 r = true;
402 }
403 return r;
404 }
405
406 function sumDigits(n, m) {
407 if (m == 0 || m == null) {
408 m = 1;
409 }
410 n += "";
411 if (m > 0) {
412 while (n.length > m) {
413 var r = 0;
414 for (var i = 1; i <= n.length; i++) {
415 r += 1.0 * midS(n, i, 1);
416 }
417 n = "" + r;
418 }
419 } else {
420 for (var j = 1; j <= Math.abs(m); j++) {
421 var r = 0;
422 for (var i = 1; i <= n.length; i++) {
423 r += 1.0 * midS(n, i, 1);
424 }
425 n = "" + r;
426 }
427 }
428 r = n;
429 return r;
430 }
431
432 function makeArray(n) {
433 this.length = n;
434 for (var i = 1; i <= n; i++) {
435 this[i] = 0;
436 }
437 return this;
438 }
439
440 // End of MilkieX
441
442 //var dl=""+document.location; dl=dl.toLowerCase(); if (dl.substring(0,22)!="http://www.elfqrin.com" && dl.substring(0,16)!="file:///c|/data/") {window.location="/";}
443
444 init();
445
446 // -->
447 </SCRIPT>
448
449 <CENTER>
450 <FORM name=console>
451 <DIV align=center><TT><FONT color=#ee0000><span class="STYLE2">银行卡号生成器</span>
452 </FONT></TT></DIV>
453
454 <P class="STYLE2">生成银行卡号
455 <P>Choose Pattern<BR><SELECT onchange=chgccp(); name=ccpp>
456 <SCRIPT language=JavaScript>
457 <!--
458 for (i=1;i<=tw;i++) {
459 if (i!=1) {document.writeln("<OPTION>"+cd[i]);} else {document.writeln("<OPTION SELECTED>"+cd[i]);}
460 }
461 // -->
462 </SCRIPT>
463 </SELECT> <BR><INPUT maxLength=24 size=24 name=ccp>
464 <P>间隔: <SELECT name=ccnsp> <OPTION>(无)<OPTION
465 selected>(空格)<OPTION>-</OPTION></SELECT> <br> <!-- Max tries: --><INPUT type=hidden size=4 value=1000 name=tr>
466 <P><INPUT onclick=ccngen(document.console.ccp.value,document.console.tr.value); type=button value=生成>
467
468 <P><TEXTAREA name=output2 rows=3 wrap=VIRTUAL cols=58></TEXTAREA>
469 <P>
470 <HR width="75%">
471
472 <SCRIPT language=JavaScript>
473 <!--
474 chgccp();
475 // -->
476 </SCRIPT>
477
478 <HR width="75%">
479
480 <P class=STYLE1>警告:此工具只供学习及研究之用,不得用于其他非法用途!你已经同意此条款,由此产生的问题本站概不负责!</P>
481 </CENTER>
482 <script language="javascript" src="/JS/Copy.js"></script>
483 <!-- 网站底部代码 -->