elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:11  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Hacer un 100 millones de Insert sin que se me pare.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Hacer un 100 millones de Insert sin que se me pare.  (Leído 2,247 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.059



Ver Perfil WWW
Hacer un 100 millones de Insert sin que se me pare.
« en: 14 Marzo 2011, 01:21 »

Buenas, estoy haciendo unas pruebas para un artículo que estoy haciendo de colisión hash en MD5 y SHA1.

Y estaba haciendo una prueba para hacer y guardar en una base de datos para guardar los 100 primeros millones y:

Código
<?php
 
$db_host="localhost";
$db_name="colision";
$db_user="colisionn";
$db_user_pass="blablabla";
 
 
$con = mysql_connect($db_host,$db_user,$db_user_pass);
if (!$con)
 {
 die('Could not connect: ' . mysql_error());
 }
 
mysql_select_db($db_name, $con);
 
 
$contador=1;
 
while($contador!=9999999){
 
$md5=md5($contador);
$sha1=sha1($contador);
 
 
mysql_query("INSERT INTO NUM1 (NUM, MD5, SHA1)
VALUES ('$contador', '$md5', '$sha1')"
);
 
$contador++;
};
 
mysql_close($con);
 
 
?>

Y el PHP se me para cuando lleva poco más de 1 millón. Supongo que es por que tendrá un tiempo máximo para devolver una respuesta al usuario que espera en el navegadorn, pero no se me ocurre nada.

¿Alguna idea?


En línea




bomba1990


Desconectado Desconectado

Mensajes: 383



Ver Perfil WWW
Re: Hacer un 100 millones de Insert sin que se me pare.
« Respuesta #1 en: 14 Marzo 2011, 02:27 »

max time executon. hay una configuracion del php.ini que establece un tiempo maximo de ejecucion. puedes modificarlo y multiplicarlo por 10, aver si haci termina la ejecucion, yo tambien hice un script hace un tiempo que cuando llegaba al tiempo maximo de ejecucion se paraba y espera que el usuario le de click y redireccione a la misma pagina para seguir donde la dejo.


En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Hacer un 100 millones de Insert sin que se me pare.
« Respuesta #2 en: 14 Marzo 2011, 02:32 »

Quizás pueda mejorar si realizar el Cifrado de los datos desde el motor de base de datos, es decir:
Código
for( $i=0; $i<=9999999; $i++ ){
 $sSQL = "INSERT INTO NUM1 (NUM, MD5, SHA1) VALUES ('".$i."', 'MD5(".$i.")', 'SHA1(".$i.")');";
}
En línea

---
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.187



Ver Perfil WWW
Re: Hacer un 100 millones de Insert sin que se me pare.
« Respuesta #3 en: 14 Marzo 2011, 03:11 »

Insertarla 100 millones de veces sin que se te pare? Entonces vos necesitas VIAGRA.

set_time_limit();
En línea

RedZer


Desconectado Desconectado

Mensajes: 654



Ver Perfil
Re: Hacer un 100 millones de Insert sin que se me pare.
« Respuesta #4 en: 14 Marzo 2011, 07:13 »

Insertarla 100 millones de veces sin que se te pare? Entonces vos necesitas VIAGRA.


jajajajajajaja o M- force
En línea

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
Stoya

Desconectado Desconectado

Mensajes: 83


Nerviosismo esperando respuesta a tema.


Ver Perfil
Re: Hacer un 100 millones de Insert sin que se me pare.
« Respuesta #5 en: 19 Marzo 2011, 12:40 »

Quizás pueda mejorar si realizar el Cifrado de los datos desde el motor de base de datos, es decir:
Código
for( $i=0; $i<=9999999; $i++ ){
 $sSQL = "INSERT INTO NUM1 (NUM, MD5, SHA1) VALUES ('".$i."', 'MD5(".$i.")', 'SHA1(".$i.")');";
}


¿No se puede hacer esto en php?

Código
for( $i=0; $i<=9999999; $i++ ){
 $sSQL = "INSERT INTO NUM1 (NUM, MD5, SHA1) VALUES ('$i', 'MD5($i)', 'SHA1($i)');";
}

Si hasta un millón llega, considerando que es probable que uses un lenguaje tan defectuoso como php porque lo estés ejecutando en un hosting, que en el hosting no tengas permiso para hacer lo de set_time_limit(); (usará modo seguro) ni para cambiar php.ini, que estará fuera de tu jaula, lo que puedes hacer es hacerlo de varias veces.

Lo único que tienes que hacer es cambiar:
Código
$contador=1;
por
Código
$contador=mysql_fetch_row(mysql_query("SELECT max(num) FROM num1;"))[0];
En línea
WHK
吴阿卡
Ex-Staff
*
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Hacer un 100 millones de Insert sin que se me pare.
« Respuesta #6 en: 22 Marzo 2011, 00:09 »

Quizás pueda mejorar si realizar el Cifrado de los datos desde el motor de base de datos, es decir:
Código
for( $i=0; $i<=9999999; $i++ ){
 $sSQL = "INSERT INTO NUM1 (NUM, MD5, SHA1) VALUES ('".$i."', 'MD5(".$i.")', 'SHA1(".$i.")');";
}


mysql no soporta concaenaciones para multiples inserts con ";", eso se utiliza en phpmyadmin porque phpmyadmin separa las querys y las hace múltiples ejecutando una por una, pero en la práctica eso no existe, solo lo puede hacer mssql (vivan las inyecciones multiples).

intenta hacer lo que te dicen con set_time_limit(); y si quieres dejarlo en background ejecutalo desde php directamente con system() y lo pasas por >dev/null&
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Rey11


Desconectado Desconectado

Mensajes: 3.244



Ver Perfil WWW
Re: Hacer un 100 millones de Insert sin que se me pare.
« Respuesta #7 en: 22 Marzo 2011, 00:48 »

Función sleep, deja descansar la maquinaria unos segundo y sigue al rato:
Sleep(5);

Por ejemplo, y si no por pasos, si tienes 1000000000 numeros a hacer md5 pues divides ese número de dos, hasta que te quede un número más normal digamos 5000, luego cojes y sumas todas las divisiones que has hecho de ese número, guardas en un fichero el número de pasos a seguir, entonces, empiezas, tufichero.php?paso=0 te muestra una web donde poniendo en la cabecera una redirección te redirecciones en 5 segundos por ejemplo a tufichero.php?paso=1
Así tu ordeador desde el navegador va llamando automáicamente a crear nuevos hash md5, tu servidor no se satura y va poco a poco, si, vas a tardar más tiempo, pero no se saturará el servidor...
Pero al igual que lo haces con números puedes coger un fichero diccionario y crearte un programa en php que valla abriendole poniendo el hash md5 en otro fichero y luego para crackear un password en md5 simplemente comparas rapidamente jaja
No se hay muchas posibilidades interesantes :)
Un Saludo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DNS's cawen su pare xD
Desarrollo Web
Jeferi 1 337 Último mensaje 10 Agosto 2004, 22:21
por el-brujo
Problema al hacer Insert en MYSQL
Desarrollo Web
Nabucodonosor 6 938 Último mensaje 28 Junio 2005, 15:55
por Nabucodonosor
Tremenda duda con una red q no me pare de crecer...
Hacking Wireless
barakaldes 11 858 Último mensaje 14 Febrero 2006, 21:15
por barakaldes
Mi aporte pare todos
Programación Visual Basic
henker 1 430 Último mensaje 9 Agosto 2007, 12:02
por sch3m4
Vaca pare un caballo! « 1 2 »
Foro Libre
ignorantev1.1 16 3,233 Último mensaje 1 Noviembre 2010, 15:40
por [L]ord [R]NA
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines