Ver Mensaje Individual
  #17  
Antiguo 23-10-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Entiendo que aguml solo ha pretendido experimentar. Al principio no entendí bien lo que pretendía y escribí un código muy simple que evidentemente no era lo que él buscaba. Siguiendo con la causa original del hilo me permito aportar un código usando C, sin ayuda de cadenas estilo delphi, como él usa, mucho más eficiente.

He usado un serial como éste: FAB1AF04. La función de aguml ha dado con el resultado en 262,875 segundos, mientras que la función que propongo ha tardado 8,656 segundos en un i7. La diferencia es más que notable: 30 veces más rápido, y dedicándole un poco más de tiempo, seguro que se le puede hacer rendir algo más:

Código PHP:
bool FuerzaBruta(charSerialcharSalidacharRango)
{
  
int L strlen(Serial);
  
int R strlen(Rango);
  
int ni;
  
bool Error true;

  for(
n=0n<Ln++) Salida[n] = *Rango;
  
Salida[n] = 0;
  
int f;
  for(
int r=0; ; r++){
    *
Salida Rango[r%R];
    
//acarreo
    
for(int c=0Salida[c]==*Rango && r>1c++){
      for(
i=0Rango[i] && Rango[i]!=Salida[c+1]; i++);
      
Salida[c+1] = Rango[(i+1)%R];
    }
    if(!(
Error strcmp(SalidaSerial))) break;
  }
  return !
Error;

Saludos.
Responder Con Cita