fork download
  1. # http://o...content-available-to-author-only...e.jp/qa/7490552.html
  2.  
  3. $numeric = ('0' .. '9').to_a;
  4. $alpha = ('a' .. 'z').to_a;
  5. $cap = ('A' .. 'Z').to_a;
  6. $char = %w" # $ % ( ) - = ^ ~ | @ ` [ ; : + * / ? ";
  7.  
  8. def r( letters, num_try )
  9. c = [];
  10. s = letters.dup;
  11. num_try.times do
  12. c << s.slice!( rand( s.length ) );
  13. end
  14. return c;
  15. end
  16.  
  17. def check_passwd( pw )
  18. return [ $numeric, $alpha, $cap, $char ].all? do |charset|
  19. pw.any?{|c| charset.member?( c ) }
  20. end;
  21. end
  22. max_pass_len = 8;
  23. RND = Random.new;
  24. for h in (1..100)
  25. n_numeric = RND.rand( 1 .. max_pass_len - 3 );
  26. n_alpha = RND.rand( 1 .. max_pass_len - 2 - n_numeric );
  27. n_cap = RND.rand( 1 .. max_pass_len - 1 - n_numeric - n_alpha );
  28. n_char = max_pass_len - n_numeric - n_alpha - n_cap;
  29. pw = r( [ r( $numeric, n_numeric ),
  30. r( $alpha, n_alpha ),
  31. r( $cap, n_cap ),
  32. r( $char, n_char ) ].flatten, max_pass_len );
  33. print pw.join;
  34. unless check_passwd( pw ) then
  35. print " -> NG!\n"
  36. exit 1;
  37. end
  38. print "\n";
  39. end
  40.  
Success #stdin #stdout 0.01s 4892KB
stdin
Standard input is empty
stdout
$if4j9%M
-3?6ItDl
N#J~9;^p
30s24*O6
#wEMn1th
JHrF2(#|
l9N83a?6
35B789:u
F#olc17g
r2P~akjq
EC8l+/?U
2Zkpot[s
038@5bX7
B7@24g01
)q5+89Yf
23u49S8*
/Of:p#0@
ry*8wiJh
u8cJ~k;1
G%aq9gu0
Zan#780x
yT47~3Og
6`^F%#l~
2o5u68`X
9G@zm)rg
zZ#3^U1~
53~Q9va%
5-lv7xET
95Od8`26
4r(CRzK0
%dG78BU9
4L92#u35
d9^Laj2(
[0`W^2Bg
gWZM`9BI
Fa`kvh@4
z56S4-71
N5z%1842
19D$p84n
nk-N;1m4
7g`2V36|
^iT325y6
7dI1N|BH
wV436*D~
1+mEh9n4
#*83fcYw
2N759g*8
`5x07+N4
;341w~9Z
05k8Z+72
/#n9d1Z5
J7Z01v%4
kOnp`2x5
1e6209)Q
h0?13YC4
f3cwS+tm
1Ilte0:y
4P%p5M6o
y92G/KY7
34Xo[a^0
jsnY2a+f
m|i3E6qy
to*0P=Rj
456Yo*17
G?574j91
2957)Ak4
69Z30l+1
F24Y5k$7
3^Y=o18B
JF^-U:o3
h^6189rR
3dxhivP~
2173b4*M
*f3J1?5k
9R:27rEd
zp?m-UI9
|97U8ewh
8#2K0nCD
h`3b0Qs8
f[Q8EDvj
|79-@8Rl
rDG8dmB(
3O6$f8P0
|Sd19YoH
3)57wInu
5?6189Ut
:40jn3Fh
X53ezq1~
0aO8X2(|
)Y#;1r8T
@ze5K3ya
10L~vyr3
0E5^@dA1
c09Z3jh-
xmuz8tL*
;G15k`V6
Tw|8HGKX
9y713N6%
YmW0^v9g
0Y$748y2