Autor Tema: Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?  (Leído 6722 veces)

0 Usuarios y 1 Visitante están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« en: Septiembre 14, 2011, 12:59:17 pm »
Hola.
Queriendo evitar algo de código para crear una encriptacion de un valor, y luego poder leer esa cadena y obtener el valor que encripte hice lo que a continuación muestro.
La verdad no tiene nada de especial o ingenioso, sucede que yo (humano) al leer esa cadena quiero saber de que valor se trata (osea mentalmente aplico el algoritmo), y cuando el programa la lea también sepa de que valor se trata. Son solo dos: verdadero y falso. Hasta alli ya di un dato pero usualmente un usuario que halla logrado meterse a la BD no sabrá si busca un verdadero o falso.
Esto lo quiero utilizar para validar a que clientes míos puedan tener una determinada funcionalidad (si es que la pagaron) y si entran a la BD y vean las cadenas no logren deducir cual es el valor que habilita la funcionalidad.
Entonces, como es difícil evaluarse solo, les pido si me puedan dar una mano en lo siguiente:
La tabla que esta debajo tiene cada registro un estado o valor que se interpretaré como verdadero o como falso. Quiero saber si me pueden decir cual es (obvio yo lo se solo quiero saber si esta bien "camuflado"), y con esto saber si salta a primera vista el algoritmo, si requiere un poco de razonamiento o si de plano esta complicado debido a que existen muchísimas opciones.
ID   CLAVE
1   1MJ2D8GFSA
2   A0HKJ345BJ
3   3D0AJSDCA1
4   RDS1DSD1DA
5   AMJ21EGFSA
6   THSJF0S232
7   03JGD91KSA
8   1DHS0FS0EW
9   FI1DSWJE1A
10   JFS3101SA1

Si sale sencillo resolver esto lo tiro al tacho y le hecho mano a un codigo de encriptacion, la verdad son solo 3 o 4 cosas que voy a evaluar y pongo 10 siendo exagerado, por eso no me ameritaba un code de encriptación.

Gracias.
Me encuentras en YAcosta.com

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #1 en: Septiembre 14, 2011, 04:24:03 pm »
Esto es un acertijo jejej, bueno solo por arriesgar

1         1MJ2D8GFSA      True
2         A0HKJ345BJ      True
3         3D0AJSDCA1      False
4         RDS1DSD1DA      False
5         AMJ21EGFSA      True
6         THSJF0S232      True
7         03JGD91KSA      True
8         1DHS0FS0EW      True
9         FI1DSWJE1A      False
10         JFS3101SA1      False

Sumo los valores numéricos y si es impar es Verdadero, si es par es Falso
Anduve serca?



YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #2 en: Septiembre 14, 2011, 04:51:22 pm »
jeje, si creo que vendría a ser un acertijo... pero, no mi estimado, no es la respuesta, mmm, podría decir que no estuvo cerca aunque algunas respuestas coincidieron. En un par de días daré exactamente la "formula" o algoritmo donde se ve que cumple para todos los 10 casos.

Mmm, podría originar un concurso esto jeje.  Pero cual seria el premio??? jejeje

Gracias por hacerla, se aceptan insistencias   ;)


Me encuentras en YAcosta.com

ADONAIRAFA

  • Gigabyte
  • ****
  • Mensajes: 291
  • Reputación: +37/-1
  • Que bien se siente al terminar un programa !!!
    • Ver Perfil
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #3 en: Septiembre 14, 2011, 05:51:10 pm »
No se si entendí bien (ahh ignorancia la mía !!! ::)) pero me parece a haber encontrado 2 patrones...
El primero:

ID       CLAVE
1         1MJ2D8GFSA ------> True
2         A0HKJ345BJ -------> False
3         3D0AJSDCA1-------> False
4         RDS1DSD1DA -----> True
5         AMJ21EGFSA ------> True
6         THSJF0S232 -------> False
7         03JGD91KSA ------> False
8         1DHS0FS0EW -----> True
9         FI1DSWJE1A ------> True
10       JFS3101SA --------> True

El otro "patrón" que encontré (aunque quizás no tenga nada que ver):

ID       CLAVE
1         1MJ2D8GFSA ------> 1 --- A
2         A0HKJ345BJ -------> 2 --- B
3         3D0AJSDCA1 ------> 3 --- C
4         RDS1DSD1DA -----> 4 --- D
5         AMJ21EGFSA ------> 5 --- E
6         THSJF0S232 -------> 6 --- F
7         03JGD91KSA ------> 7 --- G
8         1DHS0FS0EW -----> 8 --- H
9         FI1DSWJE1A ------> 9 --- I
10      JFS3101SA --------> 10 --- J  (0)

No se, eso fue lo que noté al menos en el primer patrón. En cuanto al segundo, no se que pueda tener con lo de verdadero o falso.

Saludos !!!


Manuel F. Borrego S. 8)
Barcelona. Venezuela.
Hay dos tipos de personas: Los que siguen un camino... y los que hacen camino al avanzar !!!

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #4 en: Septiembre 14, 2011, 06:26:34 pm »
Es muy dificil hacerlo si no hay al menos uno que sea true y uno que sea false :P si uno entra a la base de datos, al menos, con otros campos se puede ir ubicando (y a la vez con el programa andando) los valores

Eso es mi punto de vista :P

Para mi, la primera mas facil y mas "para despitar" es sumar los numeros de 1 cifra que haya, es true si la suma es impar/par y false si no lo es :P

Otra seria solo el primer o ultimo caracter, si es numero es true y si no es false (o la revez)

hay muchas variantes :P es un buen algoritmo :P

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #5 en: Septiembre 14, 2011, 07:32:01 pm »
No esperare dos dias, hoy en la noche doy la respuesta.

Saludos
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #6 en: Septiembre 15, 2011, 12:30:33 am »
Y el ganador es..... jejeje
Bien, aqui la respuesta. Lo hago ahora porque nuestro amigo ADONAIRAFA estuvo bastante cerca de chuantarla y en premio (jeje) la suelto de una vez, su respuesta mas bien me invita a corregir (desordenar los registros) aquello por lo cual me parece que indujo a primera vista los patrones y casi certeramente.
Y digo "casi" porque erró en el primer patrón la 7, 8, 9 y 10. (la 10 la editaste mal porque te faltó el ultimo caracter).
También es cierto el segundo patron pero erró en la 4 a pesar de obtener el mismo caracter y si tiene una finalidad.

Bien, sin desordenar y tal como lo plantee la respuesta seria:
ID   CLAVE   RESULTADO
1   1MJ2D8GFSA   Verdadero
2   A0HKJ345BJ   Falso
3   3D0AJSDCA1   Falso
4   RDS1DSD1DA   Verdadero
5   AMJ21EGFSA   Verdadero
6   THSJF0S232   Falso
7   03JGD91KSA   Verdadero
8   1DHS0FS0EW   Falso
9   FI1DSWJE1A   Verdadero
10   JFS3101SA1   Verdadero

Y es:
De izquierda a derecha debo contar según el numero de registro (ID) la posición de caracter, Si el ID es 4 cuento de izquierda a derecha y debo encontrar o un 0 o un 1 para saber si es verdadero o falso.
Este verdadero o falso debe validarse con el segundo patrón de derecha a izquierda. Usando el mismo ejemplo, cuento 4 hacia la derecha y debo hallar una letra, en este caso la D para confirmar que esta cadena corresponde a ese ID.

¿Porque el segundo patrón?, es una pretención de asegurar que si copian los registros manualmente queriendo conseguir un true no lo lograra tan fácilmente. La letra (segundo patrón) exige que ese registro este con ese ID y no con otro.

Bueno, este ejercicio por supuesto esta lejos de ser infalible e invulnerable, no busco tanto, para ello los algoritmos encriptadores, pero en un mar de desconocimiento por parte del usuario travieso y que no tenga ninguna información sobre lo que significan esas letras y números es mas facil que la malogre a que acierte. Por el lado de aplicación si el programa no encuentra lo que se espera podría hacer mil cosas como "defensa" de lo que quiera "proteger".
Por cierto que esto se puede mejorar mas y sin complicar mucho, esto es al final un contador de posición y un verificador, y puedo usar en vez de 0 y 1 otro caracter, conjugar dos caracteres, extender a 20 caracteres, en fin.
Bueno, afinando un poco mas esto, porque me parece que ya vi por donde van las evaluaciones, creo que lo implementaré, en todo caso en un piloto, con esto quiero validar que en una empresa puedan usar un proceso y en otra empresa (otro cliente) no puedan, crear una tabla con el nombre del proceso y ponerle al lado un true como que es muy fácil copiar ese true en todos los registros de esa tabla y validan todo, por eso quise complicar un poco, no habrá interfaz de acceso en la aplicación a esta tabla y seré yo quien meta la mano en el registro para validar o no.

Bueno, muchas gracias por ayudarme con el ejercicio.

Un abrazo
Me encuentras en YAcosta.com

ADONAIRAFA

  • Gigabyte
  • ****
  • Mensajes: 291
  • Reputación: +37/-1
  • Que bien se siente al terminar un programa !!!
    • Ver Perfil
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #7 en: Septiembre 15, 2011, 01:27:31 am »
Bueno, Bueno Yvan !!! te las traes con tu encrptación !!! enhorabuena !!!

Y el detectar una parte de los patrones fue pura casualidad (en verdad me pregunto como fue que dí con "ellos"), me puse a observar fijamente y eso fue lo que encontré !!!

Saludos y un abrazo !!!
Manuel F. Borrego S. 8)
Barcelona. Venezuela.


PD: Por cierto Yvan, examinaste el pequeño
      programa encriptador que te mandé días
      atras?
Hay dos tipos de personas: Los que siguen un camino... y los que hacen camino al avanzar !!!

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #8 en: Septiembre 15, 2011, 09:21:47 am »
Interesante método YAcosta
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #9 en: Septiembre 15, 2011, 09:34:29 am »
Interesante ... :) aunque yo pregunto, que pasaria en el ID 11? xD

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #10 en: Septiembre 15, 2011, 12:48:10 pm »
Interesante ... :) aunque yo pregunto, que pasaria en el ID 11? xD

Hola Raul, te cuento, pues si hubiera id 11 (que en mi caso solo necesito 3 o 4 como dije antes) pues nada, no habría ningún problema solo la cadena tiene que crecer, y el 11 seria K, sin embargo, debo enfatizar que primero habría que evaluar para que querer usarla, osea esto es solo para un ambiente controlable y pequeño. Al tener yo una posibilidad exagerada de 3 o 4 procesos a controlar, pues 10 para MI ya es exagerado, asi que estoy cubierto, sino se sabe cuanto se quiere controlar lo recomendable es no usar este método pq tendria que reeditarse y ya no seria practico. Si fuera 7 u 8 lo plantearía hasta 20 caracteres y quizá en ese caso me iria por un encriptador como el de ADONAIRAFA que esta muy bueno. Aquí pongo un ejemplo hasta 20 pero esta vez desordenado para hacerlo mas confuso.

Como dije al inicio, mi excusa es para usarlo en un propósito pequeño y poder intervenir en el directamente ya que se conoce esta forma de algoritmo pudiendo hacerse algun otro derivado.

Les comento algo mas, la idea no se me presento recién en alguna reciente trasnochada  :), yo uso una cadena de 200 caracteres para un control de ventanas (donde no llego ni a los 100) y lo uso desde hace años con éxito total, parecería tedioso crearlo o mantenerlo pero no lo es para nada. Este es un ejemplo con 50:
"00001000000000000110000101000000000000010010000000" esta cadena la tiene un usuario, otro usuario tendría otra cadena similar pero con sus unos en otras posiciones. No hay que sumar, sino leer la posición.
Y por la posición y donde encuentre un 1 determino si puede entrar o no un usuario a un determinado modulo. La cuestión se me hace super sencilla mantenerla porque uso OptionButtons como matriz de control, el Id del Option es la posición del permiso dentro de la cadena. Bueno, no se si esto resulta interesante exponerla pero bueno esa es la fuente de donde partió esta idea de encriptador sencillo.

Gracias.
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Encriptacion Sencilla ¿Me puedes ayudar a descifrarla?
« Respuesta #11 en: Septiembre 15, 2011, 12:59:56 pm »
PD: Por cierto Yvan, examinaste el pequeño
      programa encriptador que te mandé días
      atras?
Hola Manuelin, si le di una checada, no a profundidad pero hasta donde vi me parece bueno, ahora en la noche lo revisare con detenimiento. Un abrazo.
Me encuentras en YAcosta.com