#protos.nu@gmail.com min=('a'..'z').to_a may=('A'..'Z').to_a num=('1'..'9').to_a tot=min+may+num puts "Dame pass" pass = gets.chomp c=0 time = Time.now res = nil tot.each {|x| c=c+1 puts x if x == pass res = x break end } if res == nil tot.each {|x| tot.each {|y| c=c+1 puts x+y if x+y == pass res = x+y break end } if res != nil break end } end if res == nil tot.each {|x| tot.each {|y| tot.each {|z| c=c+1 puts x+y+z if x+y+z == pass res = x+y+z break end } if res != nil break end } if res != nil break end } end if res == nil tot.each {|x| tot.each {|y| tot.each {|z| tot.each {|m| c=c+1 puts x+y+z+m if x+y+z+m == pass res = x+y+z+m break end } if res != nil break end } if res != nil break end } if res != nil break end } end if res == nil tot.each {|x| tot.each {|y| tot.each {|z| tot.each {|m| tot.each {|n| c=c+1 puts x+y+z+m+n if x+y+z+m+n == pass res = x+y+z+m+n break end } if res != nil break end } if res != nil break end } if res != nil break end } if res != nil break end } end if res == nil tot.each {|x| tot.each {|y| tot.each {|z| tot.each {|m| tot.each {|n| tot.each {|o| c=c+1 puts x+y+z+m+n+o if x+y+z+m+n+o == pass res = x+y+z+m+n+o break end } if res != nil break end } if res != nil break end } if res != nil break end } if res != nil break end } if res != nil break end } end time2 = Time.now dif = time2-time if dif > 60 min = dif/60 seg = dif%60 puts "Pass: #{res}\nextraída en #{min}min #{seg}seg habiendo probado #{c.to_s} posibilidades\n(#{(c/dif).to_s} posibilidades por segundo)" else puts "Pass: #{res}\nextraída en #{dif}seg habiendo probado #{c.to_s} posibilidades\n(#{(c/dif).to_s} posibilidades por segundo)" end #PRUEBAS #XoR1 => 10min #9999 => 11min 56 seg #iR4 => 2,46 seg #94 => 0,17 seg #R => 0,0005 seg