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 - Serapis

#3261
Si te vas de vacaciones, precisamente tu mejor aliado 'informativo', va a resultar que es tu teléfono móvil.
Especialmente si al sitio donde vas de vacaciones se habla un idioma del que no sabes ni una palabra...

Google "Mapas", por ejemplo resulta muy útil. Poder ver las rutas para ir de un siito a otro sin la necesidad de preguntar y que te den rutas equivocadas, no tiene precio  :laugh: :laugh: :laugh:
#3262
Creo que va siendo hora de que las leyes (que tanto se están imponiendo para internet), debieran al mismo tiempo endurecerse y castigar severamente las prácticas de estas empresas. Multas gordas y cárcel...

No parece muy justo que algún post-adolescente se dedique a insultar por alguna red social a quien sea y la pidan multa o vaya a la cárcel (que al fin y al cabo son solo palabras), y que estas empresas (que cada vez son más), salgan impunes con solo una 'regañina', como si fueran niñitos de dos años...
#3263
Foro Libre / Re: Duda , Diccionarios wpa2
18 Julio 2017, 06:13 AM
Siendo claves hexadecimales, para un largo de 13 caracteres, este es el total de claves posibles: 665.416.609.183.179.841

El almacenamiento en disco, ocuparía 13 caracteres (bytes) por cada clave, luego multiplica el valor anterior por 13. Sería insensato guardarlo a fichero, si alguien quisiera hacerlo por fuerza bruta (pero con mente no bruta), no usaría un diccionario, las iria generando sobre la marcha.

Así que estate tranquilo, además si cambias la contraseña cada cierto tiempo, el supuesto cracker, posiblemente inutilizaría su intento, ya que quizás la nueva clave fuera una que ya hubiera probado con anterioridad (cuando la clave era otra).
Si se fuerza que sea obligatorio, cambiar la clave cada x tiempo, le estás enviando a un cracker el mensaje de que debe probar su 'diccionario' en ese lapso de tiempo, si no debería volver a empezar... y por tanto es más que probable que desista por desaliento.

Pero ojo, eso no quiere decir que sea imposible obtener tu clave, solo que el método antedicho es infructuoso ...casi siempre..., porque, no hay que olvidar las claves más usadas: 123456, etc...
#3264
Creo que la razón es bastante clara..

Para una empresa que empieza, poner un precio competitivo, exige ahorrar en costes en alguna parte. Metiendo Linux, ya tienen ese ahorro y el cliente un S.O. totalmente funcional.

No creo que haya que darle más vueltas. Linux sigue sin despegar después de más de 2 décadas...
Las interminables versiones... haciéndose la autocompetencia tampoco ayuda.
Y el exagerado abuso de las consolas (para adentrarte en todo), espanta al usuario que se considera torpe.
Yo mismo me cansé de tener que andar con comandos. Resulta cansino tener que aprenderse de memoria cada comando de cada programa, solo para ver que luego en la próxima versión hay más cambios y que de nuevo vas a tener que aprenderte más cosas de memoria (cosas que ya sabías).
La ventaja de la interfaz, es que no necesitas memorizar prácticamente nada, solo ir al menú, buscar opciones y recorrerlas todas para elegir las opciones de tu preferencia, y si la nueva versión tiene cambios, no tienes que lidiar con tu memoria y te importa un EGG, que hayan cambiado de nombre o el comando asignado, ...desde la interfaz simplemente sigues seleccionando lo que prefieras.
Y mientras los desarrolladores de Linux, no se metan esto en la cabeza seguirá siendo un S.O. minoritario y relegado (y es una lástima, porque potencial le sobra..).
#3265
Soy de ambos, aunque me decanto más por el VLC, del MPC, lo que siempre me gustó mucho es la posibilidad de expandir la imagen de vídeo incluso deformando la relación ancho/alto... y lo cómodo y fácil que resulta...
#3266
Seguridad / Re: Descifrar Hash
17 Julio 2017, 20:00 PM
Los hashes no se 'crackean'. Los hashes no son cifrados (aunque se puede cifrar como todo).

Un hash es tan solo unos datos que hacen referencia al objeto del que provienen como un método de verificar que porceden de él, mediante el uso de un método específico.

No es distinto de reconocer a una persona como legítima... imagina el siguiente ejemplo:
Trabajas en una tienda, una joyería por ejemplo, el jefe se ha ido y tu te quedas al cargo.
Entra un señor y dice que quiere vender su Rolex, que vale por lo menos 50.000 tu después de tratar con él lo rebajas a 25.000... cuando viene el jefe dice que es falso, y que por tanto no vale más de 25, 50, así que tras mirar los datos de compra, el tipo firmó como John Smith y que vive en La Luna... entonces os dais cuenta d ela estafa, se llama a la poli y te pide 'referencias' del tipo...
Este es el 'hash' que tu generas para ese tipo: estatura: 1'90 aprox. pelo canoso corto, delgado, con barba y gafas, zapatos rojos, traje a rallas, etc...

Esto es una representación (hasta cierto punto) fidedigna de ese tipo. en informática a esto se le llama HASH, y sirve para lo mismo, reconocer si un 'sujeto' (fichero en el ámbito informático), corresponde o no con dicho hash. es decir si el resumen que se hizo previo es idéntico al resumen que hagamos ahora mismo. Si es distinto, sabemos que no es el mismo, que como mínimo ha cambiado desde entonces...
Que coincida el hash, no asume con absoluta certeza que sea ese el fichero (a esto se llama colisión), lo mismo que cualquiera que encajara en esa descripción del sospechosos no tendría por que ser el 'timador' que busca la poli.

Entonces igual que una descripción de una persona es inútil para encontrar a la persona en sí ni mucho menos para conocer más datos d ela persona que los que recoge la descripción (exigiría compararlo con todas las personas (al menos de la localidad)), del mismo modo el hash no tiene capacidad para identificar de qué fichero procede ese hash, ni tampoco saber más detalles del fichero.

Un hash por ejemplo que aporta info adicional, es el ed2k (el hash que genera emule), que porta datos del tamaño del fichero... peor en general los hashes no aportan nada más que el 'resumen' que genera un método específico que es lo que da nombre al hash.

...aunque da igual, no pasa un mes sin que alguien haga la misma pregunta...
#3267
Te pongo el pseudocódigo de lo que podría ser la estructura de una pila. Tu luego lo transformas a código NET, y después creas la interfaz para usarla...

Es mejor separar siempre que sea posible, el objeto que se crea de la operatoria que haga el cliente con ese objeto.

Entonces crea un nuevo proyecto, llámale  como quieras, luego añade una clase y llámala Pîla

clase pública Pila

   privado array entero ePila()  // los valores se alamcenarán aquí
   privado entero sCapacidad  // cantidad total de ítems que caben en la pila
   privado entero sItems   // cantidad de ítems que tiene la pila en un momento dado.

   Entero = publico Propiedad solo lectura Capacidad
       devolver sCapacidad  
   fin Propiedad

   Entero = publico Propiedad solo lectura Items
       Devolver sItems
   Fin Propiedad

   Buleano = publico Funcion EstaVacia
       Devolver (sItems=0)     // Si sItems es 0, la pila está vacía.
   Fin funcion

   Buleano = publico Funcion EstaLlena
       Devolver (sItems = sCapacidad)  // Si el valor de lo que contiene es igual a la capacidad, la pila está llena.
   Fin Funcion

   // Constructor de la clase, exige una cantidad para limitar la Pila.
   publico Funcion Nuevo(entero Cantidad)
      Si (cantidad > 0) luego
          Redimensionar array sPila(0 a Cantidad-1)
          sCapacidad = Cantidad
          sItems = 0
      Si no
          Generar ERROR "La cantidad de elementos en la Pila no puede ser 0 (ni un valor negativo)"
       Fin si
   Fin Funcion

   Buleano = Publico Funcion Meter(entero Valor)
       Si (EstaLlena = FALSE) entonces // invocamos un método de la propia clase
           ePila(sItems) = Valor
           sItems += 1  
           Devolver TRUE  
       Si no
           Generar ERROR " La pila está llena. Imposible añadir más elementos."
           Devolver FALSE
       Fin si
   Fin Funcion

   entero = publico Funcion Sacar // no lleva parámetros, la pila siempre saca elementos de la cima.
       Si (EstaVacia = FALSE) luego            
           sItems -=1    // simplemente se baja el puntero, no es preciso eliminar nada (salvo que se guardaren referencias de objetos).
            Devolver ePila(sItems)
       Si no
           Generar ERROR "La pila está vacía. no contiene elementos para extraer.
           Devolver 0
       Fin Si
   Fin funcion

   privada Funcion Destruir // el desctructor de la clase.
       Vaciar  
   Fin funcion

   privada Funcion Vaciar  //si esta función se hace pública necesitaría otra pareja llamada NuevaCapacidad(Cantidad) que haga lo mismo que hace el constructor... si no quedaría vacía y sin posibilidad de ser populada...
       sCapacidad=0
       sItems = 0
       Borrar array ePila
   Fin Funcion

   
Fin Clase


Éste pseudocódigo es un sencillo código pero completo para una pila. Incluso contiene dos métodos para consultar el estado de la pila (estaLlena y EstaVacia), que no son imprescindibles, pero internamente las vamos a usar, así que por que no hacerlos públicos...

Cómo usarla ?:
La pila es limitada, al valor que se le indica cuando se contruye una instancia de la clase. Es decir, tú puedes hacer uso de la pila por ejemplo desde una ventana o desde otra clase, lo mejor para probarlo es crear unos botones en un formulario y unas cajas de texto, los botones podrían ser 'crear()', Meter(), Sacar:  (los paréntesis en Crear y Meter, indican que requieren un parámetro que podría tomarlo de una caja de texto asociado a dicho botón.

Crear una instancia de la pil:
Pila p = Nueva Pila(25) //y creas una instancia de la Pila en p, que puede contener hasta 25 elementos.

Esta pila tiene varias limitaciones, no solo la cantidad de elemntos que puede contener (las pilas en general se diseñan para contener pequeñas cantidades, no cientos de millones, rara vez se necesitará un pila muy grande, un ejemplo de esas excepciones son precisamente los programas compiladores.
Bueno, otra limitación de esta pila es que la hemos limitado al tipo de datos entero. como es un proyecto de prueba, es suficiente, pero podrías hacerla de cualquier tipo incluso para admitir cualquier tipo...

Una Pila, es una estructura para guardar elementos y luego obtenerlos en orden inverso a como se metieron, es decir, la forma lógica de verlo, es imaginandose poner un libro en el suelo y lueo otro encima y luego otro y luego otro... esto es: "apilar libros"... directamente solo puedes coger el último, el que está arriba en  la cima, para coger otro más abajo, debes primero retirar los que tienes encima. Las pilas, por esto mismo se usan en casos donde se requiere precisamente mantener ese orden (inverso al que se ha metido).

Apilar datos:
p.Meter(12)
p.Meter(567)
entero n= -1234
p.Meter(n)
p.Meter(-44)


Probar los métodos y propiedades:
Mensaje p.Capacidad
Mensaje p.Items
Mensaje p.EstaLlena
Mensaje p.EstaVacia


Retirar datos:
entero n = p.Sacar
mensaje n  // el último valor metido fue -44, luego este es el primer valor sacado.
n = p.Sacar // se obtiene -1234, que fue el penúltimo metido.

Mensaje p.Items


etc....

Si tienes alguna duda, pregunta...

p.d.: no te conformes con ejecutar el proyecto a "saco" (F5, run), si no paso a paso (F11, debug... no recuerdo si en C# es también esa tecla F11 )
#3268
Lo siento, pero todos esos 'millones' que tú dices es insignificancia... Se pueden gestionar ficheros de hasta gigabytes de tamaño con cierta soltura.

Split, está pensado para cadenas de texto pequeñas, si tienes que manejar archivos muy grandes entonces hay que trabajar a un nivel mucho más bajo, manipulando bytes, aunque tampoco hace falta llegar al ensamblador.

...pero es que ni siquiera te has molestado en explicar si tus datos tienen o no un formato fijo y estricto, ni mucho menos el formato del 'fichero gigante' que dices tener... Pero tú mismo, si no quieres hacerlo eficiente, es cosa tuya... Perder el tren por llegar tarde es una cosa, perderlo por orgullo, es tontería.
#3269
No. La base puedes considerarlo la parte común a todos los lenguajes e independiente de ellos. Toca un poco todos los palos.
Y basta que sea a nivel conceptual, aunque al menos la parte matemática debe quedar muy clara. Con una buena base, luego es muy asequible avanzar, sin la base es frecuente tropezar casi con cada cosa que tenga algo de complejidad.

Busca algún libro sobre "fundamentos de programación"... No te preocupes si al principio, no entiendes demasiado, a medida que avances y lo leas 3 o 4 veces, lo verás todo bastante claro, es cuestión de que puedas atar cabos, mientras habrá cabos sueltos por todos lados, cuando logres empezar a atarlos, la complejidad desaparece y todo lo que queda es el trato del inglés...
#3270
No entiendo nada.
Si quieres programar, y dedicarte a esto, lo primero e imprescindible es aprender lo básico y elemental, al margen de cualquier lenguaje de programación.

Tienes que saber operar con números, tienes que entender los números negativos y las bases binaria, hexadeciaml y octal (la decimal se supone que uno lo tiene).
Tienes que saber que son las operaciones lógicas, aritméticas, qué son los condicionales y las bifurcaciones, que son las funciones, propiedades, variables, secciones de código...
Tienes que saber la diferencia entre la ejecución compilada e interpretada y por lo mismo que es depurar/'debugar' un programa.
Tienes que conocer las estructuras básicas de datos: array, estructuras, listas enlazadas, pilas (FIFO), colas (LIFO), árboles, ficheros y de las bases de datos al menos algo somero...

...y todo sin profundizar, lo básico al menos. Solo entonces es cuando puedes decantarte por un lenguaje y avanzar en profundidad, si todo lo básico lo conoces, nada en un lenguaje va a ser tan complejo que te resulte incomprensible.

Sin un conocimiento básico, es perder el tiempo. Es como querer arreglar un avión cuando no conoces ni como funciona una bicicleta.

Es impòsible poder prestar ayuda útil a alguien que carece de conocimientos básicos... ¿qué baldosa puedo decirte que pises si tu no la conoces y yo ignoro lo que tu desconoces?. Cuando alguien se pone a programar se le supone que sabe lo básico y si no es así, su prioridad no debe ser otra que adquirir esa base... se torna absurdo querer conbstruir un avión, cuando uno no sabe lo que es un ala, ni un motor a reacción ni siquiera un tobera de escape, ni una hélice. ¿¿¿Cómo se supone que vas a hacer algo que no sabes ni cómo es, ni de qué piezas se compone????.