Noviembre 02, 2018, 10:44:30 PM Ultima modificación: Noviembre 13, 2018, 12:17:57 AM por kostra
Es posible esto??? tengo un ini que me guarda valores 0,1

[lista]
var1 = "0"
var2 = "0"
var3 = "1"

etc...


es posible de alguuuuna manera cifrar estos datos??? me parece raro pk al ser solo 2 caracteres, cifrarlo es absurdo, ya sea "0"="%" y "1"="("

cualquiera puede saber ese cifrado xD

me interesa cifrarlo porque ando haciendo una app con un test muy personal y a la gente no le gustaría que sus respuestas sobre cosas personales quedaran grabadas en el movil de nadie.... y tampoco me vale poner "0"="$" or "%" or "/" etc...
ya que yo como creador, sabría qué es que y es justo lo que quiero evitar en especial, quiero que ni yo mismo pueda saberlo :S
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Usa operaciones a nivel de bits para convertir esos 1 y 0 en un número (o unos números) decimal, que después sí puedes cifrar de alguna manera.
[gml]
//Un montón de variables con 1 y 0
var a = 1;
var b = 0;
var c = 1;
var d = 1;
var e = 1;
var f = 0;

var num = (a<<5) | (b<<4) | (c<<3) | (d<<2) | (e<<1) | f;
//num vale 46, que es 101110 en binario.
[/gml]
Y ya luego cifra ese número como gustes. De hecho, hace poco hice este sistema simple en JS para cifrar texto y números, no debería ser muy complicado pasarlo a GML:
https://gist.github.com/NiuWeb/d9dd13de3518b287e537d4c6b320c607
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Noviembre 03, 2018, 02:25:20 AM
Usa operaciones a nivel de bits para convertir esos 1 y 0 en un número (o unos números) decimal, que después sí puedes cifrar de alguna manera.
[gml]
//Un montón de variables con 1 y 0
var a = 1;
var b = 0;
var c = 1;
var d = 1;
var e = 1;
var f = 0;

var num = (a<<5) | (b<<4) | (c<<3) | (d<<2) | (e<<1) | f;
//num vale 46, que es 101110 en binario.
[/gml]
Y ya luego cifra ese número como gustes. De hecho, hace poco hice este sistema simple en JS para cifrar texto y números, no debería ser muy complicado pasarlo a GML:
https://gist.github.com/NiuWeb/d9dd13de3518b287e537d4c6b320c607


No entendi de que sirve ese codigo para cifrar... simplemente cuenta los caracteres y se cifra con un random de simbolos pues es lo que se me ocurre si me explican lo agradeceria  :D

Lo que hace es construir un numero decimal con los bits en las variables de la a a la f usando operadores a nivel de bits, el operador | equivale a una suma de bits y el operador << se llama corrimiento, y le agrega ceros al numero binario.
Asi, cada bit del numero 46 que en binario es 101110 corresponde al valor de cada una de las variables.

Aguanta un script  ;D
Cita de: Fenris78Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: CalioSomos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.

Igual sigo sin entender, ni se como funciona ese corredor porque lo acabo de probar y es como potenciar un numero por x.
y el operador | no se como funciona asi que no entendi pero igual esta bien gracias por explicarme

Yo tampoco entendi Niu xD
Me 0ones un ejemplo con "mivariable = false" ? :B
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Y si nos muestras como tienes almacenados los datos antes de meterlos al archivo ini para trabajar en un algoritmo ajustado a esas condiciones?
Cita de: Fenris78Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: CalioSomos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.

Te dejo unas imagenes que hice explicando como se opera con el bitwise or "|" y shift left "<<"
El resto del codigo de Niuweb se deduce solo.



Ok Ya creo que entendi por cierto en el ejemplo querias usar creo que 10+17 ya que 11+17 = 28  :-[

Pero sigo sin entender el cifrado, quiere decir que 46 caracteres se colocaran como cifrado??

ejemplo

Cifrado = "!#!$%#!#!$!%,.#!#!{=(.,@°?!%#!#!#! // Y mas cosas :v

expliquenme entre mas caca me entre al cerebro por lo menos puedo ser usado como estiercol :v

Ya se, pero el que no entendio lo que dije es solamente que entre mas conocimiento tenga al menos alguien me puede contratar, algo asi ya entienden...  :-[ :-[ :-[

Cita de: Goganpis en Noviembre 09, 2018, 02:07:46 PM
Ok Ya creo que entendi por cierto en el ejemplo querias usar creo que 10+17 ya que 11+17 = 28  :-[

No es una suma bit a bit, es una comparacion con el OR logico, bit a bit.

El cifrado de NiuWeb solo usa binarios, mi ejemplo pasa de decimales a binario. En ese caso, el efecto que tiene es simplemente ir desplazando el bit, de manera que da la impresion de que "se va elevando al cuadrado".

El cifrado en realidad tiene como objetivo hacer ilegible los datos originales.
Supongamos que Kostra guarda en un archivo puro binario:
000011110001100

Esos datos se procesan segun un algoritmo usando los operadores ya explicados y obtiene
1111

Y ya está.
Ahora si quiere hacer otro cifrado, lo pasa a decimal, lo que equivaldria (1111) al numero 15
Entonces cuando algun curioso vaya  a ver el archivo INI lo abrirá y verá simplemente:

15

Que a usos practicos no tiene. Hay que descrifrarlo, haciendo el proceso inverso, para luego interpretarlo dentro del juego.

Respondiendo a la pregunta:

"Pero sigo sin entender el cifrado, quiere decir que 46 caracteres se colocaran como cifrado?"
No, 46 es el resultado de cifrar el contenido del archivo.


Ah ok se me habia pasado por alto como funciona el OR  :-[

No sabia nada de ese tipo de cifrado, puede usarse para un perfil de usuario en el cual guarda datos como en que nivel va

#11 Noviembre 10, 2018, 08:47:31 PM Ultima modificación: Noviembre 10, 2018, 08:52:10 PM por kostra
Sigo sin enterarme, me estan explicando algebra de bool que ya la di en el insti xd pero creo que no me entendieron.. quiero cifrar binarios.. no EN binario!! No quiero cifrar ni letras ni numeros, quiero cifrar BINARIOS cifrar unos y ceros en otra cosa indescifrable!!

Tengo una array
resp[0] = 1;
resp[1] = 0;
resp[2] = 0;
resp[3] = 1;
resp[4] = 0;
etc....
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

No porque tenga unos y ceros es necesariamente Álgebra Booleana, es más, aqui no simplificamos circuitos, encriptamos numeros binarios.

Ahora, el algoritmo de NiuWeb basta para ofuscar una cadena binaria como podria ser "10100" a algo como "111001111111001111001" , lo cual es una salida claramente diferente de la entrada.

Aunque hizo un ejemplo muy poco útil, puesto que usó el corrimiento en las mismas posiciones que los digitos. Asi que la entrada es igual a la salida, sin embargo, podrías modificarlo para que la salida fuese distinta de la entrada:

[gml]
var a = 1;
var b = 0;
var c = 1;
var d = 1;
var e = 1;
var f = 0;

var num = (a<<8) | (b<<7) | (c<<9) | (d<<4) | (e<<3) | f;
[/gml]
Para la entrada : 101110 (64 en decimal, si se quiere)
la salida: 792 (1100011000, en binario, si se quiere).

El algoritmo cifra la entrada, claramente.



Si no es eso, entonces?

Lo de bool lo decia por el or y la suma xd a ver.. creo que empiezo a pillarlo, trata de agarrar varios ceros y unos y juntarlos para formar un decimal y trabajar con eso? Lo que no entiendo es de donde salen esos a b c d e f 8 7 9 4 y 3, y como salio ese binario de 792, (no acabo de entender eso del corrimiento, ahora mirare el manual sobre eso ya que nunca antes lo utilice...)

Podrian, plis, cuando me pongan ejemplos, comentar las lineas? XD igual mas o menos creo que voy pillando el concepto general
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

#14 Noviembre 11, 2018, 06:22:12 PM Ultima modificación: Noviembre 11, 2018, 06:35:49 PM por NiuWeb
Equis de xd.

A veeer...

[spoiler=Primero que todo...]
Cita de: Goganpis en Noviembre 03, 2018, 07:28:08 PM
Igual sigo sin entender, ni se como funciona ese corredor porque lo acabo de probar y es como potenciar un numero por x.
y el operador | no se como funciona asi que no entendi pero igual esta bien gracias por explicarme
Sí, básicamente la operación es la misma. Recordemos que en binario, cada numerito a la izquierda vale el doble que el anterior, lo que significa que mover todos esos numeritos una "casilla" a la izquierda es igual a multiplicar todo el número por 2.

O sea, que en resumen:
[gml]
(  a << n  ) == ( a * power(2 ,n) )
[/gml]
Sólo que los operadores a nivel de bits tienen, digamos que, su función específica y uno puede entender qué está intentando hacer el código.
[/spoiler]

Y ahora sí, dejo adjunto un ejemplo donde se aplica la idea que di inicialmente de una forma un tanto más compleja y funcional. El concepto es simple: Se ingresa un arreglo lleno de unos y ceros, y el primer script devuelve un texto cifrado. Luego, ese texto se ingresa en el segundo script y éste se encarga de regresar nuevamente el arreglo original.

El funcionamiento de todos los códigos está en comentarios dentro del mismo editable, ojo que también hay código en el Creation Code de la habitación.

EDIT: Pero ojo, que este "cifrado" no es ni de cerca algo seguro o que pueda proteger la información; si se conoce el algoritmo es muy fácil saber qué había originalmente. El objetivo es en realidad "compactar" los datos binarios en un solo mensaje que se pueda cifrar (esta vez sí con un algoritmo especializado en seguridad). Por eso el enlace que compartí en mi primer comentario, aunque seguramente hayan otras alternativas más seguras y simples.

(Cualquier error díganlo faasst v:)
alaberga regué el café.

BA:STFW&RTFM