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


 


Tema destacado: Píldoras formativas en seguridad de la información


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 127
51  Foros Generales / Foro Libre / Re: ¿cuál es el truco de esta afirmación? en: 7 Abril 2018, 02:20
...sin embargo el planteamiento que señala PalitroqueZ, no es correcto... (asumo que se ha equivocado al escribir).

Citar
doblar un papel din A4 de 0.01mm de grosor 54 veces, el ancho que generaría seria la distancia de la tierra al sol y un poco mas.

Si el papel se pliega, el ancho en realidad se va reduciendo, y entonces lo que aumenta es el grosor... luego el área inicial del papel, debe ser enorme... ...pués del mismo modo que el grosor se multiplica por 2, el área en cada doblez, se divide entre 2.

Solo con que en el último pliegue lleguemos a tener el área de un sello (estampa), de 3x3cm. el área inicial tendría una superficie de:
- Cuando solo quedan diez pliegues tienes 96x96 (casi un metro cuadrado).
- Cuando quedan 20 pliegues mide 3.073x3072 cm.
- Cuando quedan 30 pliegues mide 98.034x98.034 (casi una hectárea)
- Cuando quedan 40 pliegues mide 3.145.728x3.145.728  (3'14 km. de lado)
- Cuando quedan 50 pliegues mide 100.663.296 (100x100 km.)
- Así que inicialmente mide 402.653.184x402.653.184 (402'6x402'6 km.).

En resumen, si cortas ese área en tiras de 3x3cm. (134.217.728 filas por 134.217.728 columnas) y las pones una encima de otra... Tienes esta cantidad de trozos: 18.014.398.509.481.984.
Como cada uno tiene un grosor de 0'01mm.  moviendo la coma 8 posiciones a la izquierda, 180.143.985'094.819.84 Acabamos con 180millones de km.
Que en efecto es lo mismo que 2^54... como bien señala Orubatosu.



Y sí, está basado en el cuento del príncipe que ofreció a un sabio por sus ayudas que eligiera él mismo el pago por sus servicios, y éste reclamó que le pagaran con granos de arro depositando con uno y duplicando la siguiente vez, tantas veces como casillas tiene el tablero del ajedrez, juego que a la sazón todos conocían... (y que por tanto sabían que 64 era un número limitado y pequeño, sin calcular la medida real de lo que estaba pidiendo)... pero no tiene nada que ver con el invento ni el inventor del Ajedrez, que es algo desconocido aunque parece haber consenso en que su cuna se sitúa en La India.
52  Foros Generales / Noticias / Re: Hacienda se pone seria con el bitcoin y las criptomonedas: inspección a 60 ... en: 5 Abril 2018, 22:53
Vaya... Eso propiciará cambios radicales en el pensamiento acerca d ela moneda, diviendo la Sociedad que usa la moneda, a un lado las tórtolas, y al otro los pichones...

Posiblemente algo así, sea el gatillazo que no retorno... y sea lo que facilite que las moneda virtual, se desligue definitivamente de la moneda de curso legal.
53  Foros Generales / Noticias / Re: El fin de las gráficas para minar está cerca: este ASIC vale 800 dólares y ... en: 5 Abril 2018, 03:15
Opino igual... espero que incorporen alguna ROM, que pueda ser cambiada, si no mala inversión para el que compra y posible ruina para el que fabrica (si fabrica en demasía y no alcanza a vender todo el stock, antes de que algo así suceda).
54  Foros Generales / Noticias / Re: Instagram censura los pezones femeninos pero permite las peleas de gallos en: 5 Abril 2018, 03:05
Yo no sé que pasa en esta década, pero no entiendo tanta queja con la desnudez... parece que en vez de evolucionar, estamos entrando cada vez en un cerco de censura absurdo, cadavez más estrecho... ¿involucionamos como sociedad?.

Una teta, es... inofensiva, de cualquier modo que se mire. Con decir que la primera teta que un hombre 'se come', es la de su madre y que lo hace nada más nacer, está todo dicho... y (las tetas) deberían ser declaradas patrimonio de la Humanidad.

...asesinar animales, tal como yo lo veo, no es distinto de asesinar personas...


...por cierto, que Instagram, Twitter, Facebook, etc... que tengan un concepto diferente de nosotros respecto de lo que es violencia y desnudez, se debe a que todos esos contenidos son revisados por gente de La India (si el país), cuyos conceptos de lo que es ético o no, dista mucho de lo que es aceptable en nuestra sociedad... Allí (como los árabes), la desnudez es algo terriblemente malo (creo que jamás murió nadie por el solo hecho de estar desnudo)... en cambio matar animales está a la orden del día (si no son vacas, claro).
55  Foros Generales / Noticias / Re: Absuelven a un informático denunciado en 2012 por señalar un agujero de .... en: 5 Abril 2018, 02:59
Qué cosas, lo querían enchironar y ni siquiera había hackqueado nada, lo descubrió de rebote y avisó... es que de verdad, se merecían hbaer sido ser hackeados maliciosamente (por K48R0N35)  :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh:
56  Programación / Programación C/C++ / Re: Funcion palíndromo. en: 5 Abril 2018, 02:32
...
Sin embargo, si tengo dos objecciones 'entre humanos' con este algoritmo:
...
...por poner quejas, en la solución que propuse tampoco puse distinción de mayúsculas respecto de minúsculas, se da por sobreentendido... ya que esa no es la raíz del problema que requiere aclaración...

El objetivo del pseudocódigo, es abstraerse de tonterías como la inicialización de variables y cuestiones específicas de tal o cual lenguaje y centrarse en el problema de verdad... se inicializa exclusivamente las variables que sea precisas con el valor que toque, cuando sea distinto del valor por defecto para el tipo de datos...

Hay soluciones para ejercicios, y soluciones, profesionales. Creo que la cuestión tratada, entra en el de 'ejercicio de clase', que típicamente cada año, pondrán algunos profesores a sus alumnos. Si a un alumno, le presentan un problema y le dan un plazo de 2-4 días para entregarlo, carece de sentido que pierda el tiempo tratando de resolver todos los posibles problemas del mundo que se le presenten, porque entonces le faltaría tiempo... (yo le dediqué el tiempo que traté en escribirlo... 5 minutos o así y luego lo repasé levemente...
Se supone que al alumno, se le darán varias frases y deberá demostrar cuantas y cuales son palíndromas, y me temo que no le van a reclamar que el algoritmo solvente el problema en cualquier circunstancia posible (no habrá un botón nuclear que se active si falla) y en la realidad, no existen frases en ningún libro con 420 espacios (ni muchos menos) seguidos tal que deba comprobarse que sea palíndroma y desborde un bucle...




De todas maneras, si se trata de ser quisquilloso, mira como son las cosas... tu algoritmo fallará, con el siguiente palíndromo:

"Es Adán, ya ve yo soy Eva y nada se"

Por qué, por que por lo mismo que tu te sacas de la manga los 420 espacios (que no figuran en ninguna frase razonable), yo me saco de la manga otros signos de puntuación que no son expresamente espacios, como la coma del ejemplo, un punto, un guión, dos puntos, un tabulador en vez de un espacio, etc... y que para el caso tampoco deben contar al considerar un palíndromo.... pero a diferencia de tus quejas, esto si es razonable que se dé en las frases...


p.d.: Tambén me resulta graciosa, esta frase:
De acuerdo. Una puntualización "pedantic" (perdón). Son los 'caracteres no válidos' los que delimitan las palabras dentro de una 'frase'
Yo también estoy de acuerdo...

Cuando creo una función que deba aceptar o rechazar ciertos caracteres, típicamente la llamaré:
       EsCaracterValido(...) ó
       EsCaracterInvalido(...)
Pero no tengo ninguna objección a que tu en tus códigos la llames:
       EsCaracterQueDelimitaLasPalabrasDentroDeUnaFrase(...)

57  Foros Generales / Noticias / Re: EEUU pedirá los datos de redes sociales y correo electrónico a los .... en: 2 Abril 2018, 16:15
y el que no tenga cuenta en las redes sociales, entonces no puede ingresar a eeuu?
Pués nada... tocará crearse una cuenta y poner 'Hola que ase'... y ya teniendo presencia en una red social, podrás entrar.


La cuestión es que si Trump sale del país... como él mismo tuviera que dar esos datos a inmigración, y chequearan sus redes sociales, creo que no le dejarían entrar en el país... su cuenta si pudiera tener pinta de parecerse a la típica de un troll-terrorista.
58  Foros Generales / Noticias / Re: Amazon eliminará nuestros MP3 del servicio de almacenamiento de música, qué ... en: 2 Abril 2018, 16:08
Asumo que este 'servicio' era simplemente una estrategia, para conocer los gustos de los usuarios, incluso por zonas geográficas... una vez recopiladas las estadísticas, los datos ya no son necesarios y para ellos supone un estorbo, razón por la cual defnitivamente lo eliminan...

Algo similar a lo que hace Spotify, que te permite tener listas del contenido local de tu propio equipo... Más tarde si un álbum, que ellos no tenían, pasabna tenerlo, ése sustituía al que tuvieras en tu equipo... y en este caso era de asumir que si tú tenías un álbum, que ellos no poseían seguro que s elo descargaban a sus servidores, para poderlo ofrecer a otros que lo buscasen...
59  Programación / .NET / Re: Cifrar variables o textos de forma sencilla. en: 1 Abril 2018, 16:47
Algunas cosas...


1 - Usando el sistema de cifrar usando XOR con un único valor (10 en ese caso), es relativamente sencillo descubrir el sistema. Si en cambio cada carácter en origen se cifra con un valor distinto, no sirve de nada un análisis de frecuencia...
Considera cifrar esta palabra: matematicas
tiene 3 'a', y dos veces se repite 'mat': 'mat' 'e' 'mat' 'i' 'cas'.
matematicas (con XOR 10) = gk~ogk~ciky   'gk~' 'o' 'gk~' 'c' 'iky'
matematicas (con XOR ??) = "PTIzNjs3Jy4wYXM="  siendo ?? resultado de la clave "QWERTYUIOP"
matematicas (con XOR ??) = "DgAZDAMAGh0GQR0="  siendo ?? resultado de la clave "caminante no hay camino"

Como puedes ver en los 2 últimos ejemplos que no usan XOR 10, no hay correspondencia entre caracteres en  la salida con respecto de la entrada... que haya dos veces 'mat', o 3 veces una 'a'... no guarda relación con el resultado en la salida.

Más aún imaginemos que el texto a cifrar es algo más extenso: "las matematicas son muy utiles"

"las matematicas con muy utiles" (con XOR 10) = "fky*gk~ogk~ciky*yed*gs*~cfoy"
Como se ve, la subcadena 'matematicas' se localiza dentro de este nuevo resultado, : "gk~ogk~ciky"  y s elocaliza porque cada carácter a la entrada arroja siempre el mismo resultado a la salida, hay una correspondecia bidireccional muy tangible...

"las matematicas son muy utiles" (con XOR ??) = "RFRaDVxQWUxYYXRcSkxCEV5GWyFtPjJ0Li89Jy5z"  siendo ?? resultado de la clave "QWERTYUIOP", como se aprecia, no se puede localizar correspondencia con la subcadena de 'matematicas' anteriormente cifrada a "PTIzNjs3Jy4wYXM=" no aparece como subcadena dentro de un texto mayor que subcontenga al previo...
Nota que también existe una correspondecia bidireccional (si no no se podría decodificar), pero es intangible. En cuanto cambia el tamaño de la entrada o cambia la clave, el resultaod es totalmente distinto.


2 - Con tu método, al operar con: 'n XOR 10', puede dejarte algunos caracteres no imprimibles... Recuerda que XOR, se comporta como una suma o una resta, dependiendo de los operandos... deja el bit a 1, cuando el número de bits a 1 (en la misma posición) de los operandos es impar, y en otro caso lo deja a 0.
 Para ver claramente lo que te digo prueba esto:
 
Código:
   escribir en consola "Desde: 0 hasta: 15"
    Bucle para k desde 0 a 255
        escribir en consola en misma linea (k xor 10)  + ", "
        Si (((k+1) and 15) = 0)
               escribir en consola nueva linea
               escribir en consola "Desde: " + k + " hasta: " + (k+15)
        Fin si
    Fin bucle
Si sólo usas caracteres en el contenido de esas variables, desde el espacio hasta el 127 (el siguiente a ~)
Tendrás estas conversiones válidas con 'n XOR 10':
desde: 31 hasta: 47
42, 43, 40, 41, 46, 47, 44, 45, 34, 35, 32, 33, 38, 39, 36, 37,
desde: 47 hasta: 63
58, 59, 56, 57, 62, 63, 60, 61, 50, 51, 48, 49, 54, 55, 52, 53,
desde: 63 hasta: 79
74, 75, 72, 73, 78, 79, 76, 77, 66, 67, 64, 65, 70, 71, 68, 69,
desde: 79 hasta: 95
90, 91, 88, 89, 94, 95, 92, 93, 82, 83, 80, 81, 86, 87, 84, 85,
desde: 95 hasta: 111
106, 107, 104, 105, 110, 111, 108, 109, 98, 99, 96, 97, 102, 103, 100, 101,
desde: 111 hasta: 127
122, 123, 120, 121, 126, 127, 124, 125, 114, 115, 112, 113, 118, 119, 116, 117,


3 - Al margen de eso, cifrar como quieres se trata simplemente de obtener un array de bytes (o chars), con los que poder operar partiendo de la matriz, y luego tras el resultado volver a convertir a string de nuevo.

Código
  1.  
  2.            string s = "En un lugar de 'La Mancha', de cuyo nombre no quiero acordarme.";
  3.            string r, t;
  4.  
  5.            s = "las matematicas son muy utiles";
  6.            int k;
  7.            int j = s.Length;
  8.  
  9.            //1- Convertir un string a un array de bytes:
  10.            byte[] Cifrado = Encoding.Default.GetBytes(s);   //o también  ASCIIEncoding.ASCII.GetBytes(s)
  11.  
  12.            // 2- Cifrar el byte[k] con Xor 10:
  13.            for (k = 0; k < j; k++){
  14.                Cifrado[k] = (byte) ( Cifrado[k] ^ 10);
  15.            }
  16.  
  17.            // 3 - Convertir el array de bytes en un string, de nuevo.
  18.            r = Encoding.Default.GetString(Cifrado);  
  19.  


4 - Aunque uses esto de XOR 10, te sugiero que lo metas en una función, y lo pongas como una extensión de método para la clase String, como te indicaba más arriba, así tu antes conviertes los textos deseados, los guardas en un fichero, luego los pegas a tu programa, y luego ya modificas de forma definitiva el programa y en 'main', ´simplemente llamarías al método 'decode', por cada variable, que tengas cifrada:

por ejemplo:
Código
  1. Console.Title = Console.Title.Decode
El contenido de esa función es básicamente las líneas recién adjuntas... 's', sería el parámetro de entrada y 'r' sería un return.
60  Programación / .NET / Re: Cifrar variables o textos de forma sencilla. en: 31 Marzo 2018, 16:13
...y bueno, aprovechando que es sábado y Semana Santa y que por ello tengo un poco de tiempo libre...

No acostumbro a poner código, creo que todo el que reclama algo tiene que entender lo que sele dice y poner de su parte, pero bueno... Tampoco es plan que pongan en duda, lo que uno dice, porque (al menos yo) lo que uno dice debe decirlo con conocimiento, si no es mejor callarse, ó ante la duda preguntar...

El código parte de las líneas que tienes tú, yo simplemente he añadido la extensión de los métodos para los que te señalaba más arriba, corrigiendo en efecto, los pequeños detalles que se escapan cuando escribes al vuelo la idea... esto es, funciona perfectamente.
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6.  
  7. namespace Encriptar_variable_Consola_01{
  8.    using CustomExtensions;
  9.    class Program{
  10.        static void Main(string[] args){
  11.            string Key = "QWERTYUIOP";
  12.            string s = "En un lugar de 'La Mancha', de cuyo nombre no quiero acordarme.";
  13.            string r, t;
  14.  
  15.            r = s.Code(Key);
  16.            System.Console.WriteLine("El texto original {0} cifrado con la clave {1}, da por resultado {2}", s, Key, r);
  17.            Console.WriteLine();
  18.            t = r.Decode(Key);
  19.            System.Console.WriteLine("...y vuelta atrás, el texto cifrado {0} con la clave {1}, nos devuelve al origen {2}", r, Key, t);
  20.  
  21.            Console.WriteLine();
  22.            Console.ForegroundColor = ConsoleColor.Yellow;
  23.            System.Console.WriteLine("Se comprueba que 's' = 't' {0} = {1}", s, t);
  24.            Console.ForegroundColor = ConsoleColor.White;
  25.  
  26.  
  27.  
  28.  
  29.  
  30.            Console.WriteLine();  
  31.            //Console.Title = "Ocultar variable"; // Título de la pantalla.
  32.            Console.Title = "Ocultar variable".Code(Key) ;  
  33.            //string variable = "Esto es una prueba.";
  34.            string variable = "Esto es una prueba.".Code(Key) ;
  35.            Console.WriteLine(variable);
  36.            //Console.WriteLine("Otra prueba.");
  37.            Console.WriteLine("Otra prueba.".Code(Key) );
  38.  
  39.            Console.WriteLine();
  40.            Console.ForegroundColor = ConsoleColor.Red;
  41.            Console.WriteLine("Pulse una tecla y observa como cambia el título de la consola a su estado decodificado...");
  42.            Console.ReadKey();
  43.            Console.Title = Console.Title.Decode(Key);
  44.  
  45.            Console.WriteLine("Pulse cualquier tecla para salir.");
  46.            Console.ReadKey();
  47.        }
  48.    }
  49. }
  50.  
  51.  
  52. namespace CustomExtensions{
  53.    //Los métodos extendidos, deben ser definidos como una clase estática.
  54.    public static class StringExtension    {        
  55.        public static string Code(this String ElTexto, String LaClave){
  56.            byte[] Cifrado = Encoding.UTF8.GetBytes(ElTexto);
  57.            byte[] Key = Encoding.UTF8.GetBytes(Ampliar(LaClave, Cifrado.Length));
  58.            byte k;
  59.  
  60.            for (k=0; k< Cifrado.Length; k++){
  61.                Cifrado[k] = (byte)(Cifrado[k] ^ Key[k]);
  62.            }
  63.  
  64.            return Convert.ToBase64String(Cifrado);
  65.        }
  66.  
  67.        public static string Decode(this string Cifrado, String LaClave){
  68.            byte[] Cif = Convert.FromBase64String(Cifrado);            
  69.            byte[] Key = Encoding.UTF8.GetBytes(Ampliar(LaClave, Cif.Length));
  70.            byte k;
  71.  
  72.            for (k = 0; k < Cif.Length; k++){
  73.                Cif[k] = (byte)(Cif[k] ^ Key[k]);
  74.            }
  75.            return Encoding.UTF8.GetString(Cif);
  76.        }
  77.  
  78.        private static string Ampliar(string Key, int Minimo){
  79.            int k, j, i;
  80.  
  81.            byte[] yeK = Encoding.UTF8.GetBytes(Key);
  82.            k = yeK.Length;
  83.            j = (k-1);
  84.            byte[] tmp= new byte[k];
  85.  
  86.            while (k < Minimo){
  87.                k = (k * 2);
  88.                Array.Resize(ref tmp, k); //redimensionar tmp(0 a k)
  89.                //' El byte primero es la media de los extremos, luego entre el 2ª y el penúltimo, luego entre el 3º y el antepenúltimo...
  90.                //' el byte último es un xor entre los extremos, luego entre el 2ª y el penúltimo, luego entre el 3º y el antepenúltimo...
  91.                //' es muy simple, pero puede complicarse todo lo que quieras... y para lo que necesitas es suficiente.
  92.                for (i = 0; i < j; i++) {
  93.                    tmp[i] = (byte) ((yeK[i] + yeK[j-i] ) >> 1) ;
  94.                    tmp[k-1-i] = (byte) (yeK[i] ^ yeK[j-i]);
  95.                }
  96.                //' Se puede complicar más con otras fases: 2,3,4 alterando la forma o la forma en que los índices se conjugan.
  97.  
  98.                yeK = tmp; //' asignamos un array al otro...
  99.                j = (k - 1);
  100.            }
  101.            return Encoding.UTF8.GetString(yeK);
  102.        }
  103.    }
  104. }
  105.  

NOTAS:
A --- Yo tengo el VS-2010, puede que para una versión más actual, pueda requerir algún cambio, el propio entorno, ya te sugerirá si algo es obsoleto o incluso si no lo reconoce.... por ejemplo los métodos Getbytes, GetString, podrían estar desplazados respecto de UTF8.
B --- Nunca ha manejado una versión 'Comunity', solo versiones Enterprise y Profesional, por lo que ignoro las limitaciones de las versiones Comunity, supongo que para algo tan sencillo, no deba afectarle.
C --- Fíjate en el detalle de importar el namespace, concretamente en la línea: using CustomExtensions;
D --- Al final me he mantenido firme (al pseudocódigo que puse) y he dejado el cifrado con XOR, aparte de codificar con Base64.
E --- Para probarlo y entenderlo bien, ejecútalo paso a paso (tecla F11).
F --- He añadido bastante 'verbosidad', en main, para reflejar el uso de los métodos Code y Decode.
G --- p.d.: Personalmente acostumbro a abrir las llaves en la línea previa, por lo que no estando acostumbrado pueda dar la impresión de que 'falta algo'... cuestión de gustos, solamente...
H --- ...y por supuesto y para aclarar tus dudas: Es una aplicaicón de consola, la frase tuya:  Me da que usas la idea del Windows form y mi idea es en modo consola.[/i] es irrelevante, aunque yo pusiera en el ejemplo referencias a unos controles textbox, el pseudocódigo es adaptable a ambas situaciones...
I --- Para algo más elegante, incluso la clave (QWERTYUIOP), podría estar cifrada (y ser descifrada, por ejemplo con el nombre del programa, con lo que si alguien lo cambia, 'traducirá' a urliburli), o bien ser pasada como un argumento al programa.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 127
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines