Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How can i procedurally generate string to break a password?

Asked by
Xianon 105
8 years ago
/*/ Decodificador de contraseñas para Investigacion Cientifica programado por Edimar Valentin Kery
// 1/3/2016
/*/

#include <iostream> /*/ Incluir archivos 'header' que contiene lo
                        necesario parra que el programma ejecute
                    /*/
#include <cstdlib>
#include <cstdio>
#include <string>
#include <ctime>

void funcion_decifrante(std::string contrasena, char caracteres[]); /*/ Este es el prototipo de una funcion aun no definida.
Esta se encargara de decifrar la contraseña.
/*/

char caracteres[93]; /*/ Esto es una mesa que va acontener todos los caracteres que se pueden contener
en una contraseña usando los valores de la tabla ASCII
/*/

char caracteres_asignador(int codigo_ASCII); /*/ Otro prototipo, este es el que le va a asignar los
caracteres a la variable caracteres /*/

int main() /*/ Esta funcion es la principal y es la que llama a las demas funciones
/*/
{
  caracteres[93] = '\0'; // Null Terminante
  for( unsigned int i = 33; i < 126; i++ ) // Esto es un lazo, correra 'i' sea mayor que 126
  {
    static unsigned int index = 0; /*/ Esta variable se usa como direccion a la tabla 'caracteres'
    para acessar su contenido /*/

    caracteres[index] = caracteres_asignador(i); /*/ caracteres_asignador se encargara de asignarle
    su valor a 'caracteres' para despues usarlo para combinarlo y formar combinaciones que luego
    podemos usar para verificar la contraseña
    /*/
    index++; // Le suma 1 a index
  }

  std::string Contrasena; /*/ Declara la variable que contendra la contraseña introduzida por el
  usuario
  /*/
 std::cout << "Introduzca contraseña: " << "\n"; // Escribe "Introduzca contraseña: " en la terminal
 std::cin >> Contrasena; // Introudze la contraseña a la variable
  funcion_decifrante(Contrasena, caracteres); /*/ Se llama la funcion decifrante y se le pasa
  la contraseña y los caracteres para decifrar la Contraseña
  /*/
  return 0; // Si el programa ejecuta bien, regresara '0'
}

char caracteres_asignador(int codigo_ASCII) // Define la funcion caracteres_asignador
{
   return (char)codigo_ASCII; // Regresa el caracter correspondiente al valor dado
}

void funcion_decifrante(std::string contrasena, char caracteres[]) // Define la funcion_decifrante
{
  std::string combinacion; // Declara la variable que se utilizara para contener las combinaciones
  while(combinacion != contrasena) // Correra siempre y cuando 'combinacion' no sea igual a 'contraseña'
  {

    static unsigned short int index_c = 0; // Index para caracteres
    static unsigned short int tamano = 0; // Index para la combinacion
    if(index_c == 92)
    {
      tamano++;
      index_c = 0;
    }
    combinacion[tamano] = caracteres[index_c]; // Hace la union
    index_c++;
    std::cout << combinacion << "\n";
  }
  if(combinacion == contrasena) // Si la combinacion es correcta
  {
     std::cout << "La contraseña es: " << combinacion << "\n"; // Escribe el resultado
  }
}







Answer this question