No veo nada erróneo. De hecho, hice la prueba con 60 unos y ceros también, a ver si con tantos el script fallaba:
[gml]
//PRUEBA DEL SCRIPT
//Datos a cifrar
var datos = array(
0, 0, 1, 1,
0, 0, 0, 1,
1, 0, 1, 1,
0, 1, 1, 1,
0, 1, 0, 0,
0, 1, 1, 1,
0, 1, 1, 1,
1, 1, 0, 0,
0, 0, 0, 1,
1, 1, 1, 1,
0, 1, 1, 0,
1, 0, 0, 1,
1, 0, 1, 0,
1, 0, 0, 1,
1, 0, 1, 1
);
//Crear cifrado
var cifra = cifrar_binarios(datos);
//Mostrar en pantalla
show_debug_message( cifra );
//Guardar y cargar en un INI
ini_open('datos.ini');
ini_write_string('datos', 'cifrado', cifra);
ini_close();
ini_open('datos.ini');
var cifra2 = ini_read_string('datos', 'cifrado', '');
ini_close();
//Descifrar contenido cifrado
var descifra = descifrar_binarios( cifra2, array_length_1d(datos) );
//Mostrar en pantalla
show_debug_message( descifra );
if array_equals(datos, descifra) {
show_debug_message( '¡Tienen los mismos valores!' );
}
[/gml]
El resultado en la consola es éste:
O sea, que la cantidad de datos no daña el proceso de cifrado, incluso si se extraen de un archivo ini.
Como primera depuración, podrías omitir la parte de guardar la cadena en el ini y sólo cifrar y descifrar en el mismo código.
Si te funciona bien (debería, si no has modificado los scripts), la segunda prueba que puedes hacer es contar el número de caracteres de la cadena que se guarda en el ini. Si son sesenta dígitos a guardar, la cadena cifrada debería tener exactamente 15 caracteres. Si no tiene esos caracteres, el error está en el script que guarda el ini. Mira, así se ve el archivo que se guardó con el código de arriba:

Ahora bien,
Revisa que la cadena que entra y sale del ini tenga únicamente letras minúsculas entre la a y la p. Cualquier espacio u otro caracter va a dañar los datos.
También ayudaría que mostraras el arreglo original (resp), la cadena que se cifra, la cadena que se guarda en el INI y la cadena que se extrae del mismo (y, sólo por si acaso, los scripts que usas para guardar y cargar xdddd).
[gml]
//PRUEBA DEL SCRIPT
//Datos a cifrar
var datos = array(
0, 0, 1, 1,
0, 0, 0, 1,
1, 0, 1, 1,
0, 1, 1, 1,
0, 1, 0, 0,
0, 1, 1, 1,
0, 1, 1, 1,
1, 1, 0, 0,
0, 0, 0, 1,
1, 1, 1, 1,
0, 1, 1, 0,
1, 0, 0, 1,
1, 0, 1, 0,
1, 0, 0, 1,
1, 0, 1, 1
);
//Crear cifrado
var cifra = cifrar_binarios(datos);
//Mostrar en pantalla
show_debug_message( cifra );
//Guardar y cargar en un INI
ini_open('datos.ini');
ini_write_string('datos', 'cifrado', cifra);
ini_close();
ini_open('datos.ini');
var cifra2 = ini_read_string('datos', 'cifrado', '');
ini_close();
//Descifrar contenido cifrado
var descifra = descifrar_binarios( cifra2, array_length_1d(datos) );
//Mostrar en pantalla
show_debug_message( descifra );
if array_equals(datos, descifra) {
show_debug_message( '¡Tienen los mismos valores!' );
}
[/gml]
El resultado en la consola es éste:
Código [Seleccionar]
dblhehhmbpgjkjl
{ { 0,0,1,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0,1,1 }, }
¡Tienen los mismos valores!
O sea, que la cantidad de datos no daña el proceso de cifrado, incluso si se extraen de un archivo ini.
Como primera depuración, podrías omitir la parte de guardar la cadena en el ini y sólo cifrar y descifrar en el mismo código.
Si te funciona bien (debería, si no has modificado los scripts), la segunda prueba que puedes hacer es contar el número de caracteres de la cadena que se guarda en el ini. Si son sesenta dígitos a guardar, la cadena cifrada debería tener exactamente 15 caracteres. Si no tiene esos caracteres, el error está en el script que guarda el ini. Mira, así se ve el archivo que se guardó con el código de arriba:

Ahora bien,
Cita de: kostra en Noviembre 12, 2018, 04:32:47 PM¿Cuántos unos y ceros te devuelve?
aqui lo que no encaja, me devuelve unos y ceros, pero me devuelve pocos y no tienen nada que ver con los 60
Revisa que la cadena que entra y sale del ini tenga únicamente letras minúsculas entre la a y la p. Cualquier espacio u otro caracter va a dañar los datos.
Cita de: kostra en Noviembre 12, 2018, 04:32:47 PMEl script descifrar_binario() ya te devuelve un arreglo con los unos y ceros descifrados.
ademas, necesito una array aunque supongo que esa parte ya se buscarme la vida con las funciones string xd
También ayudaría que mostraras el arreglo original (resp), la cadena que se cifra, la cadena que se guarda en el INI y la cadena que se extrae del mismo (y, sólo por si acaso, los scripts que usas para guardar y cargar xdddd).