Nada no doy con la tecla. llevo horas intentando encriptar y desencriptar un pordiosero entero y no hay tu tia
he probado con block igual a 1 (teoricamente 8 bytes) y con block igual a 0.5, que presupongo 4 bytes.
SplinterGU, una ayudita plis.
import "mod_say"
import "mod_crypt"
global
int valor_x;
string key;
int crypted_x;
begin
key = "miclave";
valor_x = 34243;
crypted_x = -1;
say ("valor_x: " + valor_x);
crypt_encrypt (CRYPT_DES, &key, &valor_x,&crypted_x, 1);
say ("crypted_x: " + crypted_x);
valor_x = -1;
crypt_decrypt (CRYPT_DES, &key, &crypted_x, &valor_x, 1);
say ("valor_x: " +valor_x);
valor_x = 34243;
crypted_x = -1;
say ("valor_x: " +valor_x);
crypt_encrypt (CRYPT_DES, &key, &valor_x,&crypted_x, 0.5);
say ("crypted_x: " +crypted_x);
valor_x = -1;
crypt_decrypt (CRYPT_DES, &key, &crypted_x, &valor_x, 0.5);
say ("valor_x: " +valor_x);
end
3 errores
1) key no puede ser string, tiene que ser char []. (String es un id int, esto se supone que trabaja con arrays de memoria binarios)
2) int es de 4 bytes, cada bloque debe ser de 8 bytes
3) no podes poner 0.5, se espera un entero
codigo corregido
import "mod_say"
import "mod_crypt"
global
int valor_x[1];
int crypted_x[1];
char key[8];
begin
key = "miclave";
valor_x[0] = 34243;
crypted_x[0] = -1;
say ("valor_x: " + valor_x[0]);
crypt_encrypt (CRYPT_DES, &key, &valor_x[0],&crypted_x[0], 1);
say ("crypted_x: " + crypted_x[0]);
valor_x[0] = -1;
crypt_decrypt (CRYPT_DES, &key, &crypted_x[0], &valor_x[0], 1);
say ("valor_x: " +valor_x[0]);
valor_x[0] = 34243;
crypted_x[0] = -1;
say ("valor_x: " +valor_x[0]);
crypt_encrypt (CRYPT_DES, &key, &valor_x[0],&crypted_x[0], 1);
say ("crypted_x: " +crypted_x[0]);
valor_x[0] = -1;
crypt_decrypt (CRYPT_DES, &key, &crypted_x[0], &valor_x[0], 1);
say ("valor_x: " +valor_x[0]);
end
tene en cuenta que el valor encriptado son los 2 enteros, son de a 8 bytes, o sea, que si solo guardas el encripted_x[0] no va a funcionar la desencripcion.
Mil gracias, ahora entiendo un poco mejor la lib. ;)
de nada,
esta pensada para encriptar binario o texto, pero siempre en bloques de a 8 bytes... quizas te conviene meterlo en una structura, junto a otras variables, siempre tenes que procurar que sean multiplos de 8 bytes