elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como puedo determinar el tamaño de un diccionario creado en C++??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como puedo determinar el tamaño de un diccionario creado en C++??  (Leído 2,082 veces)
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Como puedo determinar el tamaño de un diccionario creado en C++??
« en: 5 Julio 2013, 05:10 am »

Bueno, no me quiero extender mucho, solo quiero crear un diccionario con un rango de numeros de 10 cifras desde el 1.000.000.000 hasta el 9.999.999.999, y me surgio la duda, cuanto podria pesar tal archivo, como puedo determinar el tamaño de ese diccionario, quedara taaaaan pesado como creo??

además, puedo generarlo de una vez con extension .lst o es necesario hacer alguna conversion?

Como lo imprimirian uds?? con arreglos, vectores o listas??


En línea


eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Como puedo determinar el tamaño de un diccionario creado en C++??
« Respuesta #1 en: 5 Julio 2013, 08:05 am »

Pues depende.

Si lo almacenas en memoria necesitas 64 bits por cada número, cógete el tamaño medio y máximo ( o aproximado si eres capaz de calcularlo ) y multiplica ese numero por 8 para calcular los requisitos de memoria.

Si lo almacenas en un archivo de texto tienes dos posibles escenarios:

* Se almacena como un archivo binario, los requisitos de espacio son los mismos que los calculados antes, 8 bytes por número.

* Se almacena como archivo formateado ( XML, INI, TXT legible, ... ) Depende del formato elegido, pero como norma general será siempre superior a ( 10 + 1 ) * cifras_en_el_diccionario. El 10 sale del número de cifras que tiene el archivo de texto y el suponiendo un carácter de separación ( lo normal es que acabe siendo más de uno )


En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Como puedo determinar el tamaño de un diccionario creado en C++??
« Respuesta #2 en: 5 Julio 2013, 14:48 pm »

entonces seria como por cada numero se ocupan 8 bytes???

seria de 1.000.000.000 a 9.999.999.999 = 8.999.999.999 numeros * * bytes = 71.999.999.992 bytes?? es correcto??

de eso serian  ->   71.999.999.992 bytes * 1 KB / 1024 bytes   =   70312499.9921875 KB

y de eso serian  ->   70312499.9921875 * 1 MB / 1024 KB   =   68664.550773621 MB

y finalmente  ->  68664.550773621 MB * 1 MB / 1024 GB   =   67.055 GB

serian 67 GB aprox?? es correcto??? necesitaria que me confirmaran ese dato para preaparar el espacio, no me quiero arriesgar a que se llene el disco como porque si, para que al final todo el esfuerzo sea en vano y no alcance y crashee el programa
En línea


0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Como puedo determinar el tamaño de un diccionario creado en C++??
« Respuesta #3 en: 5 Julio 2013, 16:38 pm »

Y necesitas almacenar esos números en un archivo? No te sale mejor generarlos al vuelo?
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Como puedo determinar el tamaño de un diccionario creado en C++??
« Respuesta #4 en: 5 Julio 2013, 18:58 pm »

Y necesitas almacenar esos números en un archivo? No te sale mejor generarlos al vuelo?

Pero entonces como puedo generar ese rango para que se use en un programa para que compare con seguridad WPA???
En línea


eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Como puedo determinar el tamaño de un diccionario creado en C++??
« Respuesta #5 en: 8 Julio 2013, 08:52 am »

Hombre, generar ese rango lo puedes hacer con un for

Código
  1. unsigned long long numero;
  2. for ( numero=1000000000; numero<=9999999999; ++numero )
  3. {
  4. ...
  5. }

Lo que no se yo es la viabilidad de probar por fuerza bruta ese rango de claves...

suponiendo que pudieses probar 1000 claves por segundo probar todo el rango te llevaría: 2450 horas... 104 días
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como puedo hacer ver codigo fuente de un programa .exe creado en visualbasic 6
Programación Visual Basic
arcangel_negro 6 26,872 Último mensaje 21 Julio 2006, 20:26 pm
por rubeng
no puedo visualizar menu creado con .ASP
.NET (C#, VB.NET, ASP)
mundo 2 1,903 Último mensaje 20 Septiembre 2007, 01:58 am
por BADBYTE-K
No puedo introducir diccionario
Wireless en Linux
TDKMAS 3 2,031 Último mensaje 16 Julio 2013, 18:44 pm
por TDKMAS
No puedo contestar a mi propio post creado
Sugerencias y dudas sobre el Foro
++c 2 2,075 Último mensaje 23 Mayo 2014, 19:29 pm
por ++c
¿como puedo abrir un diccionario .ist grande?
Hacking Wireless
Henyckma 4 2,661 Último mensaje 8 Junio 2015, 04:23 am
por WHK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines