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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 ... 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 [361] 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 ... 431
3601  Programación / Scripting / Re: Crear un sistema de numeración en: 21 Septiembre 2017, 02:00 am
Hay alguna herramienta que permita crear algo parecido al código binario?
Si... se llama matemáticas. Concretamente 'bases de numeración'.

El binario es base 2, trata de usar el 'trinario', usando por ejemplo los gráficos: 0,1,2
000 = 0
001 = 1
002 = 2
010 = 3
011 = 4
012 = 5
020 = 6
021 = 7
022 = 8

100 = 9
101 = 10
102 = 11
110 = 12
111 = 13
120 = 14
121 = 15
...
122 = 17

200 = 18
...
222 = 26
Ya tienes una base numérica de 27 valores, te vale para representar texto:  A-Z, más el espacio.

Puedes usar cualquier base numérica...

El objetivo principal es pasar de una combinación de números a un texto.
Una vez tengas tu base numérica se trata de crear una tabla donde asignas a cada valor en esa base un determinado carácter. Es decir dicho valor y carácter pasan a ser equivalentes.
3602  Seguridad Informática / Criptografía / Re: criptografia cuantica todavia por llegar? en: 19 Septiembre 2017, 13:33 pm
Creo que confundes los términos.

"Post-quantum", viene a indicar que resistirá la computación cuántica, no que esté basada en la tecnología cuántica.

Y sí, hasta el simple XOR, resiste la tecnología cuántica...
Una máquina cuántica, podrá arrojar infinitas soluciones, pero no puede aclarar cuál es la 'buena'...

...para eso no hace falta en realidad la cuántica. Imagina el simple ejemplo:
Pienso un número del 1 al 100. A ver si lo aciertas. Ya sabemos que la solución está entre 1 y 100, pero no sabemos cual es. La cuántica viene a obtener todas las soluciones posibles (estados cuánticos), así podríamos aseverar que tiene las soluciones del 1 al 100 (igual que nosotros, ¿no?, sin embargo... yo solo aceptaré una consulta.... luego las otras 99 se las puede guardar.
en definitiva, no lo va a hacer mejor que tú. Si me dices, el 49 y yo te digo, no, te equivocaste y vuelvo a elegir otro número y te vuelvo a solicitar un número entre el 1 y el 100, estamos como al principio... sigue siendo 1 entre 100, no es ahora 1 entre 99...después de 50 intentos fallidos seguirá siendo un intento entre 100, no 1 entre 50. La cuántica, no va a resolver la mayoría de asuntos criptográficos.

Incluso en un sistema donde tenga el terreno libre, para probar... pongamos 1 millón de copias de un programa, donde probar una contraseña, como va a saber si se ha descifrado el contenido?.
Yo puedo proveer un sistema de cifrado o compresión, que dado una contraseña, fuerce la extracción del contenido (que no se limite a devolver si o no, que es lo que ponen en las pelis), pero si la clave no es correcta, el contenido será urliburli, pero el tiempo de extracción está ahí... sin alguien que supervise ese millón de extracciones, como va a saber la ma´quina cuántica, si alguna extracción es correcta?. Podría ir un poco más lejos y con inteligencia artifical intentar determinar si tiene sentido el contenido extraído (por ejemplo mirando si hay alguna imagen, alguna base de datos, algún fichero o texto reconocible.... pero nuevamente, qué pasa si el contenido estaba cifrado 2 veces, o cifrado y comprimido o comprimido y cifrado?... necesitará una etapa posterior, pero como distinguir entonces una extracción con la contraseña correcta de una que no?. La extracción en todos los casos es urliburli...

Las infinitas soluciones de la cuántica, solo valen cuando dichas soluciones pueden ser probadas contra el sistema. Son claro ejemplos los problemas matemáticos, donde el remplazo de las variables por un valor en la ecuación, permite hacer el cálculo y comparar entonces si es la respuesta esperada, pero fallará indiscutiblemente en sistemas, donde no pueda probarse persé.


La computación cuántica, tiene mucho terreno por delante, es cierto, pero la seguridad es vado privado, exactamente tal y como lo es ahora. Hay piedras contra las que tropezará. Y conocido el punto débil de un sistema, es cuestión de derivar cualquier tema hacia ese punto débil.
3603  Seguridad Informática / Criptografía / Re: software cifrar o cifrar en: 18 Septiembre 2017, 23:46 pm
Si tienes datos sensibles, aparte de que los cifres, lo mejor es tenerlos en un disco duro externo. Si no está conectado al equipo, ningún intruso podrá acceder a ellos. Y conectarlo sólo cuando debas hacer algo con él.

Si eres más paranoico que eso, entonces lo mejor es tener dos equipos, uno sin red de ningún tipo, ahí puedes tener todo lo que te interese incluso sin cifrar (salvo que convivas con gente de la que no te fías, claro. Si vives sólo, con tus padres, tu novia/mujer supongo que te bastará).  Y... en el equipo que tiene la red habilitada, tener cosas irrelevantes, nada personal que no quieras exponer.

Ten en cuenta que cifrar unidades conlleva siempre un retraso a la hora de hacer algo con ello... piensa por ejemplo cifrando una peli, que luego quieres ver...

No soy muy partidario de cifrar con herramientas del sistema, precisamente porque cualquier hacker, lo que va a intentar es hackear las herramientas del sistema, encontrando vulnerabilidades o con cambios exprofeso en alguna parte... ...porque tras ello hay millones de usuarios, en cambio con una herramienta privada, qué hacker va a perder tiempo en intentar hackear un programa que solo usan 20.000 personas en todo el planeta, y que aunque lo consiga, no hay ninguna garantía de que entre esos 20.000 haya algún usuario 'interesante' al que 'intrusionar', o si lo hay tenga luego otros sistemas adicionales de seguridad???. La captura será mayor pescando en el mar con una red de arrastre que en un pantano con una caña de pescar.

Por otro lado, la seguridad en un equipo, pasa por un férreo control de dónde tienes qué. Es decir comienza por el propio usuario. Por ejemplo, yo jamás uso las carpetas que el propio 'windows' ofrece: 'mis documentos', 'mis imágenes'... en esas carpetas, suele haber lo que el propio sistema crea y 4 tonterías más sin importancia.

Como mínimo separa en dos unidades/particiones tu sistema, una para el sistema y programas, la otra para tus cosas.
Esa unidad/partición, es la que puedes cifrar si estás interesado, esa puede estar conectado a un USB externo, para conectar cuando lo uses y desconectar cuando no vayas a usarlo durante algún tiempo. Ésa es la no podrás recuperar si un día el S.O. se 'vuelve loco' y tienes que formatear... (podrías recuperarlo, pero a un alto coste ...en tiempo, como mínimo).
3604  Foros Generales / Noticias / Re: Detenida por difundir un bulo por WhatsApp sobre la presencia de yihadistas ... en: 18 Septiembre 2017, 23:32 pm
No indica que le hayan impuesto ninguna condena, solo indica que ha sido detenida y que en 'estos casos' suele estar penado con entre 3 meses y un año de cárcel o multa y x meses de cárcel.

Además no creo que la sanción llegue a ese, punto, dado que no es algo habitual supongo que serán lasos, con ella y como su caso se ha difundido servirá de aviso para los demás... seguramente de producirse más casos si que se les adjudicará la pena que establezca la ley, en esete caso cabe la posibilidad de aplicar agravantes, que no serían aplicables cuando ya se dieran más casos.

Aunque es molesto, los falsos avisos de riesgos, lo de 'cosas sensibles' (personalmente), no veo que sea ningún problema, la pena se impone porque un aviso obliga un despliegue policial, y todo ese despliegue supone un gasto económico aparte de que la movilización retira efectivos que podrían estar atendiendo otros casos reales.

No entiendo a qué habrá venido la ocurrecnia a esa mujer, los falsos avisos de lo que sea, suele ser algo más propio de adolescentes...
3605  Foros Generales / Foro Libre / Powerpoint y el endiosamiento inútil en: 18 Septiembre 2017, 06:48 am
No suelo abrir hilos, peor esta noticia me ha parecido adecuado compartirla...

Parece que no soy el único que entiende que el powerpoint, no es Dios (el del atículo del enlace más abajo, parece que se suma).

Es difícll encontrar algo más horripilante que alguien que ha creado un powerpoint, y que luego lo expone a todos. Parece como si el mero hecho de presentar algo en powerpoint, le confiriera certeza absoluta, verdad indiscutible y fé ciega.

He llegado a tener tanta repulsa al powerpoint, que cada vez que veo a alguien apasionado en él, me acaba pareciendo un persona similar a los de una secta, con su 'verdad absoluta e incuestionable'.

Tal como yo lo veo, un powerpoint, no debiera ser nada mejor que unos torpes trazos de tiza en la pizarra de toda la vida... exceptuando la calidad de los 'dibujos'... pero si es esto, lo que le confiere infalibilidad, apaga y vámonos... el caso es que no entiendo su fama, me parece inmerecida.
 
De hecho las presentaciones aún conteniendo imágenes son más aburridas  que un libro solo con texto. Porque parece que todo lo que ahí sale es 'extremadamente esencial', no se puede omitir nada ni cambiarlo de sitio por error... incluso eso estaría bien, si fueran 3-4 páginas... cuando van por 20 ya tiene uno dolor de cabeza y cuando alcanza las 70, aparecen náuseas... me resulta imposible soportar tanta estupidez.

https://www.xataka.com/otros/expulsemos-el-powerpoint-de-la-universidad-empeora-las-clases-a-los-alumnos-y-a-los-profesores
3606  Seguridad Informática / Hacking Wireless / Re: hay manera de ver el ordenador de otra persona que este conectada a mi red ? en: 18 Septiembre 2017, 06:26 am
En efecto... hay al menos una manera.

Llamas a su casa, y le dices "señor vecino, necesito entrar a tu ordenador para ver tus cosas... (igual que tu entras a mi wifi)" y ya...  :laugh: :laugh: :laugh: :laugh: :laugh:
3607  Programación / Java / Re: Problema a la hora de invocar otras clases desde la clase principal en: 18 Septiembre 2017, 06:06 am
Sí, has creado una clase servidor, y una sola instancia, pero... ...esa y solo esa instancia es la que debe ser visible a todos. Ninguna otra instancia de esa clase.
Para que eso sea posible, debe crearse una única instancia, no importa cuantas veces se pretenda crear instancias de clase.

Y el modo de lograr esto, es crearla ya tu y guardarla... y quien solicite una instancia (no debe poder crearse desde fuera delservidor), tu le entregas una referencia.

Así todos tienen exactamente la misma instancia, porque siempre entregas la referencia a la única clase creada...


Para asegurarte que lo haces bien, debes hacer alguna prueba, como la que te sugerí aquí:
Un modo de probar que es correcto, es hacer lo siguiente.

Crear un método de prueba en el servidor:

Código:
Clase Server
    Entero p_Numero

    Funcion Nueva // Instancia
        p_Numero = NumeroAlAzar(entre 1millon y 10millones)     //crea un número al azar
    Fin funcion

    Entero = Funcion Probar
        Devolver p_Numero
    Fin funcion
Fin clase

Ahora para probar si son la misma instancia cuando se crea un cliente y se comunica con el servidor, luego invoca su método Probar:
Código:
Clase Cliente  
    // .... ya tiene sus métodos, esto es un añadido al método conectar...
    
    Buleano = Funcion Conectar(x,y,z)
       Servidor = Proveedor.IniciarServidor
       Mensaje Servidor.Probar  // <------------------------ Aquí probando el servidor...
       Devolver Existe(Servidor)
   Fin Funcion
  
Fin clase
Si existe una única instancia dle servidor, el número de la prueba debe ser siempre el mismo hasta que se destruya el servidor.
Si el servidor fue creado y luego cada cliente ofrece distintos números de prueba, es que se están creando instancias exclusivas para cada cliente...
3608  Programación / Programación C/C++ / Re: Transformar una entrada de palabras en entrada matematica en: 16 Septiembre 2017, 23:41 pm
Hay algunos lenguajes que sí permiten hacer esa evaluación, por ejemplo VBScript, tienen un método Eval(string), que puede (intentar) procesar un texto entrado por el usuario... Esto es posible, porque va interpretando, no requiere compilación...

Como casi ningún lenguaje posee esa funcionalidad, en efecto tienes que hacer como te dice Engel, sin necesidad de ir tan lejos, te basta 'crear tu pequeño lenguaje', es suficiente con dos expresiones ( te recomiendo ojear la "notación BNF", te dará las ideas necesarias para poder encajarlo todo de una forma sencilla y asimilable):
------> variable Operador variable
----------------> Operador variable

Te defino todas las producciones mínimas que podría requerir 'tu lenguaje':
-------------------------------------------------------------------------------
1 expresion = numero + spc + operador1 + spc + numero | operador2 + spc + numero
2 numero = 0-9 + [numero]
3 spc = espacio + [spc] |tabulador + [spc]
4 operador1 = " + "|" - "|" * "|" / "|" ^ "|" sqr "|" or "|" and "|" xor "|" mod "
5 operador2 = " not "|" sin "|" cos "|" round "|" int "
======================================

- El simbolo "+" indica que concatenación de producciones (de partes, que tras una parte va obligadamente (salvo que sea opcional) otra parte).
- Los símbolos opcionales, tenemos 3:
------->  "x|y|z" indican que se elige uno solo entre los posibles elementos delimitados por los separadores.
------->  "-" es un separador de un rango, por ejemplo A-E, equivale a: A,B,C,D,E,F
-------> "," es un separador de lista, por ejemplo: "Set", "Get", "Do"
- Los símbolos "[x,y,z] indican que el contenido interior entre corchetes es opcional.
- Los literales (que en la expresión deben escribirse tal cual), en la descripción van encerrados entre comillas (para distinguirlos de otra producción).
     Ojo los símbolos "" + "", "" - "", (en operador1) son literales.


Llevándolo un poco más lejos puede hacerse algo más complejo, aparte de añadir más operadores (que es trivial), puedes añadir la admisión de números no solo en la base decimal y enteros, tambien  binario, hexadecimal, octal, etc... ...y/o decimales (coma flotante)
Admitiendo más posibilidades con los números
----------------------------------------------------------------------
2 numero = numeroDec | numeroBin | numeroHex | numeroOct  // sobrescribimos lo que es un número.
6 digitoBin = 0|1
7 digitoOct = digitoBin | [2-7]
8 digitoDec = digitoOct | [8-9]
9 digitoHex = digitoDec | [A-F]

10 digitosBin = digitoBin + [digitosBin]
11 digitosOct = digitoOct + [digitosOct]
12 digitosDec = digitoDec + [digitosDec]
13 digitosHex = digitoHex + [digitosHex]

16 numeroBin = "Bx" + digitosBin
17 numeroOct = "Ox" + digitosOct
18 numeroDec = digitosDec
19 numeroHex = "Hx" + digitosHex
Los números con decimales, lo dejo a tu esfuerzo...

Y por supuesto admitir variables, además de números...
-------------------------------------------------------------------------
0 valor = variable | numero
1 expresion = valor + spc + operador1 + spc + valor | operador2 + spc + valor // esta producción se modifica
14 variable = identificador + " = " + expresion
15 identificador = A-Z + [identificador] | A-Z + [0-9] + [identificador]
3609  Programación / Programación C/C++ / Re: calcular frecuencias de números aleatorios en: 16 Septiembre 2017, 06:54 am
A ver Cristina Gusigusa...

De entrada, no entiendo bien por qué pides dos veces la cantidad de números que se deben generar al azar...
   
Citar
printf("¿Cuantos numeros quieres que te genere?:   ");
   scanf("%d",&x);
   printf("¿Cuantos numeros quieres que te genere?:   ");
   scanf("%d",&p);

Luego parece que el array 'a', tendrá el tamaño que el usuario da a 'x', pero el array 'b' tendrá el tamaño dado a 'p'... 'x' y 'p', va a ser que no sean el mismo valor (salvo que tu misma seas quien lo introduce o rara casualidad...
Entonces si los arrays no van a ser del mismo tamaño y especialmente si no hay garantías de que el array 'b' sea mayor que el array 'a', acabará dando un error en la línea 53
Código:
b[i]=a[i];
Que además, no veo que se vuelva a usar el array 'b' en parte alguna... Luego elimina el array 'b', elimina la petición de 'p', y si no quieres eliminar 'p, al menos haz: p == x

La indentación aparece confusa, y no queda claro (de un simple vistazo), que queda dentro de qué... sin un esfuerzo extra revisando llaves (que obvio hacer)...
El ordenamiento inverso es redunndante, una vez hecho de mayor a menor o de menor a mayor, el inverso, basta con recorrer el array desde el final hacia atrás, hasta llegar a 0.

Así el código queda resumido así para menor.dat
Código:
final = x-1
Bucle para i desde final hasta 0 retrocediendo
    GuardarAfichero a(i)
fin bucle
De hecho si se abren dos canales de escritura, pueden guardarse a fichero los dos al mismo tiempo (en el mismo bucle)

Código:
Abrir Fichero 1
Abrir Fichero 2
Bucle para i desde 0 hasta x-1
    GuardarAfichero 1 a(i)   //guardando fichero mayor.dat
    GuardarAFichero 2 a(x-i) //guardando al fichero menor.dat
fin bucle
Cerrar fichero 1
Cerrar fichero 2

Aunque para ordenar usas un algoritmo de burbuja... que son muy lentos, pero para ejemplos son perfectamente válidos...

Finalmente llegamos a la parte de contar las frecuencias...
De entrada, date cuenta que si el array ya está ordenado es superfluo recorrer todo el array, las veces que un valor aparezca, estarán contiguos... ...porque el array está ordenado. Como no sabemos cuantos valores distintos hay, usaremos un bucle indefinido (Mientras... condición...repetir)

Código:
Abrir fichero
i = 0
Hacer Mientras (i<(x-1))
   v = a(i)    //valor actual para el que vamos a contar sus apariciones (absolutas).
   f = 0 // contador de apariciones [s]frecuencia[/s]
   Hacer // OJO: Este bucle tiene la condición al final,
            // esto implica que como mínimo se entra SIEMPRE una vez al bucle.
      f += 1
      i += 1
   Repetir mientras (v = a(i) )
   GuardarAFichero v, f //guardamos el valor y las veces que salió dicho valor (esto a tu gusto y necesidad)

Repetir

Si (v <> a(i)) luego  // si el último valor (en el array) no estaba repetido, el bucle no lo pilla, se hace aquí (modificar el bucle para hacerlo, hacer perder erficacia en cada cilo, algo que solo podrá ocurrir una vez en el array, asi es más óptimo dejarlo fuera (hacer esta comprobación), tras el bucle.
    GuardarAFichero a(i), 1
Fin si

Cerrar Fichero

Finalmente una aclaración... aquí se están contando el número de apariciones de cada valor, no la frecuencia. La frecuencia en realidad sería dividir el tamaño del array entre la cantidad de apariciones de cada valor... yendo más lejor se podría luego  dar en porcentaje. (con luego, no quiero decir en otro bucle si no modificarlo en otro momento).

Ojo, que como para Rand, no pones límites... si alguien pide pongamos 20 números es fácil que no se repita ninguna vez... acota Rand a un rango de valores, por ejemplo entre 100 y 110 y que la cantidad de números a generar sea (obligatorio) por lo menos el doble o el triple de lo que es el rango, para que haya 'repes'...
...es decir si 'x' (que introduce el usuario) es menor que el rango entre MinVal y MaxVal, repite la petición... MinVal y MaxVal serían los límites menor y mayor entre los que elegir al azar...
3610  Foros Generales / Noticias / Re: Han diseñado una tipografía ideal para escribir código y es open source en: 16 Septiembre 2017, 02:08 am
mmmm... el casoes que la tipografía ideal para el programador... para cada programador... ya existe... su propia caligrafía, no existe ninguna mejor.
Páginas: 1 ... 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 [361] 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 ... 431
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines