Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Algoritmo de cifrado del Huevo Revuelto (SEEA)  (Leído 2189 veces)

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

Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.698
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
en: Enero 14, 2016, 12:01:02 am
Hola, hace poco hice una pregunta en el foro "Preguntas y respuestas" donde tenía un error con mi código de encriptación. Gracias a jmbs19 logré solucionar el problema principal y se me ocurrió darle una pequeña (en verdad, muy pequeña xD) mejora para hacerle un poco (en verdad, muy poco) más complejo y extraño.
Al terminar mi script, recordé que muchos sistemas de encriptación tienen un nombre, como base64, sha1 (Secure Hash algorithm) y otros que obviamente tienen un nivel muy superior al mio, así que para no quedar tan abajo (?), le dí su propio nombre: "SEEA" (Siglas en inglés de: "Scrambled egg encryption algorithm", que significa "Algoritmo de cifrado del Huevo Revuelto").

Así que vamos allá:

Autor: NiuWeb (agradecimiento a jmbs19)
Versión de GM utilizada: GM:S 1.4.1657 (Debería funcionar en cualquier GM:S, pero más abajo seguro que no)
Descripción: Encripta o proteje una cadena de texto con una clave de encriptación para hacer ilegible su contenido. En realidad, el proceso de protección es una tontería, pero funciona aceptablemente

Códigos:
Ahora se viene lo importante, los códigos:
Primero, el código para encriptar:
///seea_encode( str, key );
var str = argument0;
var key = argument1;

var kl = string_length(key);

if (kl mod 2) == 0
 {
    var m1 = string_copy(key,1,kl/2);
    var m2 = string_copy(key,kl/2,kl/2);
    key = m2 + m1;
 }
else if (kl mod 2) == 1
 {
    var m1 = string_copy(key,1,1);
    var m2 = string_copy(key,kl-1,1);
    key += chr(  max(  ord(m1), ord(m2)  ) - min(  ord(m1), ord(m2)  )  );
 }


var result = "";
var char;

while string_length(str) > (string_length(key) + 1)
 {
    var rest = string_length(str) - string_length(key);
    var falt = string_copy(key,1,rest);
    key += falt;
 }


for(i=1;i<=string_length(str);i++)
 {
    char = ((string_ord_at(str,i) + string_ord_at(str,i) - string_ord_at(key,i)));
    result += chr(char);
 }
return (result);

Y luego, el de desencriptar:

///seea_decode( str, key );
var str = (argument0);
var key = argument1;

var kl = string_length(key);

if (kl mod 2) == 0
 {
    var m1 = string_copy(key,1,kl/2);
    var m2 = string_copy(key,kl/2,kl/2);
    key = m2 + m1;
 }
else if (kl mod 2) == 1
 {
    var m1 = string_copy(key,1,1);
    var m2 = string_copy(key,kl-1,1);
    key += chr(  max(  ord(m1), ord(m2)  ) - min(  ord(m1), ord(m2)  )  );
 }


var result = "";
var char;
while string_length(str) > (string_length(key) + 1)
 {
    var rest = string_length(str) - string_length(key);
    var falt = string_copy(key,1,rest);
    key += falt;
 }
for(i=1;i<=string_length(str);i++)
 {
    char = ((string_ord_at(str,i) - string_ord_at(str,i) + string_ord_at(key,i)));
    result += chr(char);
 }
return result;

Los argumentos de cada script son:
seea_encode( str, key );
/*
donde str es la cadena a encriptar
y key es la clave para encriptar
*/


seea_decode( str, key );

/*
donde str es la cadena encriptada a desencriptar
y key es la clave que se usó para encriptar
*/


Espero le pueda ser de utilidad a alguien. :-[
No les pido créditos porque entre menos se sepa con qué tipo de protección guardas tu información, más seguro es  XD
« última modificación: Marzo 18, 2016, 02:07:08 am por NiuWeb »

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2482
  • Mensajes: 2.042
  • Agradecido: 92 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #1 en: Enero 14, 2016, 12:30:52 pm
gracias por el aporte :B
« última modificación: Enero 22, 2016, 05:42:48 am por kostra »

"ola k ase clickarme o k ase"
la imagen no se quita xD
 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2482
  • Mensajes: 2.042
  • Agradecido: 92 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #2 en: Enero 22, 2016, 05:43:39 am
no es justo, esta vez no viene ningúno de los "dioses" del foro a fastidiarle el script? :V
ya os vale xD

"ola k ase clickarme o k ase"
la imagen no se quita xD
 


Desconectado brunoxzx

Respuesta #3 en: Abril 02, 2016, 07:40:02 am
no es justo, esta vez no viene ningúno de los "dioses" del foro a fastidiarle el script? :V
ya os vale xD
Yo he venido a molestar solo por este comentario.

Mira NiuWeb tu script tiene problemas por todos lados, para empezar por le nombre. ¿Porque huevo revuelo? por díos, pero que falta de creatividad, igual pudiste haber puesto algoritmo del espagueti enredado, o el de el pajaro mutilado. Te recomendaría deshumanizar el nombre de tu algoritmo y darle un nombre al termino común como NWEA(Niu Web Encryption Algorithm) para seguir la norma de los algoritmos monotonos con el nombre de su autor como RC4 o RSA. O quizá debiste seguir la norma de los algoritmos que llevan un nombre que intenta resumir la útilidad o el como funciona su algoritmo como el MD5 (Algoritmo de Resumen del Mensaje)

Siguiendo esa segunda norma yo le habría puesto NUEA acronimo de Not Useful Encryption Algorithm.


Para empezar que onda con eso de que la contraseña se invierte por la mitad si su medida es par, what? ¿para que? te parece muy divertido hacer que si la contraseña era "como" se cambie a "moco"? woow Seguridad!!!.

y esto como porque?
max(  ord(m1), ord(m2)  ) - min(  ord(m1), ord(m2)

Mejor así abs(m2-m1)...


while string_length(str) > (string_length(key) + 1)
 {
    var rest = string_length(str) - string_length(key);
    var falt = string_copy(key,1,rest);
    key += falt;
 }


for(i=1;i<=string_length(str);i++)
 {
    char = ((string_ord_at(str,i) + string_ord_at(str,i) - string_ord_at(key,i)));
    result += chr(char);
 }

y todo eso, pues bien podría ser esto...

for(i=0;i<string_length(str); result += chr((string_ord_at(str, i+1)*2 - string_ord_at(key, 1+( ( i++)  mod string_length(key) )  ))))
 {
 }
Que ademas de ser corto y muy eficiente, cumple con el compromiso de parecer encriptado.

Ahora, ni hablar del script para desencriptar, o de que los caracteres se pasan del 255 o de la poca seguridad, en pocas palabras tu algoritmo está casi peor que mi huevo revuelto de esta mañana (y eso es decir mucho).

Suerte NiuWeb. (Estoy en mi tiempo de ocio y sé que no me sale lo de troll xp).
« última modificación: Abril 02, 2016, 10:55:57 am por brunoxzx »

 


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.698
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #4 en: Abril 02, 2016, 04:45:14 pm
Lo sé, es una mierda ¬_¬ xDDD
Mejor trollea el nuevo que hice (spam spam spam spam xDDD) que es menos terrible que éste http://www.comunidadgm.org/desarrollo-de-scripts/sistema-de-encriptacion-2/
xDDD

PD1:
y esto como porque?
max(  ord(m1), ord(m2)  ) - min(  ord(m1), ord(m2)

Mejor así abs(m2-m1)...
Porque sí xd, así programo yo, se ve más pro y me gusta hacerlo así. No le veo nada de malo D': xDDD
« última modificación: Abril 02, 2016, 05:01:26 pm por NiuWeb »

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 


Desconectado brunoxzx

Respuesta #5 en: Abril 02, 2016, 08:40:28 pm
Lo sé, es una mierda ¬_¬ xDDD
Mejor trollea el nuevo que hice (spam spam spam spam xDDD) que es menos terrible que éste
Yo diría que preferiría el que no dice explicitamente que hace mi texto 25 veces más grande... Lo leeré y si veo algo extraño te comento.

Porque sí xd, así programo yo, se ve más pro y me gusta hacerlo así. No le veo nada de malo D': xDDD
:-\