Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - HRSLASH

#31
Programación C/C++ / Re: [C]Fuerza Bruta
11 Julio 2010, 19:58 PM
Nicolas_cof muchas gracias por tu bienvenida y tus sugerencias!! estuve leyendo los links q me dejaste y estan muy buenos pq muchas cosas q se tratan en ellos no las sabia.. ya modifique la forma en que habia subido el codigo e incluso baje unos libros q posteaste :D
Paso a responder tus preg, en el caso de las funciones, solo implemente las q hice por pura practica, como no estoy muy empapado con el tema de punteros quise implementarlos en las funciones para ir familiarizandome mas con ellos.. tenes razon en cuanto a la optimizacion, tal vez de la forma q lo hice sea mas ilegible.. lo modifecare..
El prog lo probe y funciona, pq encuentra la palabra clave en unos segundos, lo que quice poner en el while fue que mientras no encuentre la palabra clave q busque, pq te parece rara esa parte? como lo tendria q haber puesto? te agradeceria si me explicas :D
un saludo!
#32
Exelente nicolas_cof, muchas gracias!!
#33
Programación C/C++ / [C]Fuerza Bruta
11 Julio 2010, 10:07 AM
Hola a todos!! como primer post quiero compartir con uds un programita q estuve haciendo en C q simule un programa de fuerza bruta, solo q mas sencillo.. estoy aprendiendo a programar en C asiq soy novato, cualquier sugerencia, propuesta, o lo q sea para mejorar el codigo y aprender sera bienvenida :D..



#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int mystrlen(char *s);
void mystrcpy(char *s, char *t);
int mystrcmp(char *s, char *t);

int main()
{
      char pass[]="MONO";
      int i, num;
      num = mystrlen(pass);
      char bf[num];
      //srand(time(NULL));
      mystrcpy(pass, bf);

      while(bf != pass)
      {
               for(i=0; bf[i] != '\0'; i++){
                        bf[i] = 'A'+rand()% ('A'-'Z');
                        printf("%c", bf[i]);
                        }
                        if((mystrcmp(pass, bf)) == 1)
                                           break;
                        printf("\n");
               }
     
      printf("\n");
      return 0;
}



int mystrlen(char *s)
{
    int i;
   
    for(i=0; *s != '\0'; i++, s++);
   
    return i;
}

void mystrcpy(char *s, char *t)
{
    for(; *s != '\0'; s++, t++){
          *t = *s;
          }
    *t = '\0';
}

int mystrcmp(char *s, char *t)
{
    int r;
    while(*s != '\0'){
             r = *s - *t;
             if(*t == '\0')
                   break;
             else{
                  if(r == 0)
                       s++, t++;
                  else
                      s++;
                  }
             }
    if(*t == '\0')
          return 1;
}



Algo q no pude lograr sin un strcpy es q copie los mismos lugares en el string bf, pq si lo hacia con un strlen siempre me copiaba 3 por el '\0', la unica forma en la q pude hacerlo fue con un strcpy..
bueno un saludo, espero que les guste!!