algoritmo de fuerza bruta (fuerza bruta)

Fuerza bruta algoritmo, que la violencia algoritmo, es un patrón común algoritmos coincidentes, pensó bruta algoritmo de fuerza es el primer carácter del patrón de cadena de destino S T cadena del primer carácter a la altura, si es igual, la comparación continúa en S segundo carácter y el segundo carácter T; si no igual, a continuación, el segundo carácter de la S y T del primer carácter, seguido de la comparación continúa, hasta que el resultado final coincidente obtiene. Fuerza bruta algoritmo es un algoritmo de fuerza bruta.

1  pública  delegado  bool BruteForceCallback ( ref  Char [] testChars);
2  
3          público  estática  bool BruteForce ( cadena testChars, int startLength, int endLength, BruteForceCallback bruteForceCallback)
 4          {
 5              para ( int len = startLength; len <= endLength; ++ len)
 6              {
 7                  Char [] caracteres = nuevo  Char [len ];
8  
9                  para ( int i =0 ; i <len; ++ i)
 10                      caracteres [i] = testChars [ 0 ];
11  
12                  si (bruteForceCallback ( ref caracteres))
 13                      de retorno  verdadera ;
14  
15                  para ( int i1 = len - 1 ; i1> - 1 ; - i1)
 16                  {
 17                      int i2 = 0 ;
18  
19                      para (i2 = testChars.IndexOf (caracteres [i1]) + 1 ; i2 <testChars.Length; ++ i2)
 20                     {
 21                          chars [i1] = testChars [i2];
22  
23                          si (bruteForceCallback ( ref caracteres))
 24                              de retorno  verdadera ;
25  
26                          para ( int i3 = i1 + 1 ; i3 <len; ++ i3)
 27                          {
 28                              si (caracteres [i3] = testChars [testChars.Length - 1 ])
 29                              {
 30                                  i1 = len;
31                                  Goto outerBreak;
32                             }
 33                          }
 34                      }
 35  
36                  outerBreak:
 37                      si (i2 == testChars.Length)
 38                          caracteres [i1] = testChars [ 0 ];
39                  }
 40              }
 41  
42              retorno  falsa ;
43          }

 Ejemplo de uso

1              cadena dict = " abcde12345 " ;
2              string password = " a1b2c3d4 " ;
3  
4  
5              BruteForceCallback bruteForceCallback = delegado ( ref  Char [] testChars)
 6              {
 7                  var str = nuevos  de cadena (testChars);
8                  de retorno (str == contraseña);
9              };
10  
11  
12              bool resultado = BruteForce (dict, 1, Password.Length, bruteForceCallback);

 

salida:

cierto

 

Supongo que te gusta

Origin www.cnblogs.com/88223100/p/brute-force-algorithm.html
Recomendado
Clasificación