Autor
|
Tema: [C]Fuerza Bruta (Leído 2,588 veces)
|
HRSLASH
Desconectado
Mensajes: 33
|
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 .. #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'); } if((mystrcmp(pass, bf)) == 1) break; } 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!!
|
|
« Última modificación: 11 Julio 2010, 19:26 pm por HRSLASH »
|
En línea
|
La televisión es para mi el medio mas instructivo y cultural que conozco, cuando la prenden me voy a leer
|
|
|
|
HRSLASH
Desconectado
Mensajes: 33
|
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 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 un saludo!
|
|
|
En línea
|
La televisión es para mi el medio mas instructivo y cultural que conozco, cuando la prenden me voy a leer
|
|
|
nicolas_cof
Desconectado
Mensajes: 348
Into the Wild
|
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 En realidad lo que haces en el while es comparar direcciones de memoria, al poner que son != siempre te va a devolver 1, que en logica seria un true (verdadero). Por ende siempre se va a cumplir esa condicion ya que las dos variables tienen direcciones de memoria distintas. Te recomiendo que leas algunos de estos libros o los dos, donde vas a encontrar muchas informacion sobre el tema... > El Lenguaje de Programación C - Brian W. Kernighan, Dennis M. Ritchie > Cómo Programar en C/C++ - Harvey M. Deitel, Paul J. Deitel Y no dudes en consultar cualquier duda... Salu10.
|
|
|
En línea
|
|
|
|
HRSLASH
Desconectado
Mensajes: 33
|
Gracias x la explicacion! me baje el libro de como programar en C.. el de kernighan y Ritchie lo tengo, pero hay varias cosas q no logro entender, me resulta bastante complejo en algunas cosas.. voy a ver q tal con este otro
|
|
|
En línea
|
La televisión es para mi el medio mas instructivo y cultural que conozco, cuando la prenden me voy a leer
|
|
|
|
|