Tengo un problema con sumas en hexadecimal
Necesito realizar una suma de un array de 16 bytes y de una palabra que sería un password, al que luego habría que aplicar un algoritmo de cifrado MD5.
Mi problema es que he intentado pasar la cadena de caracteres a un array de bytes, para luego sumarlos byte a byte, pero me encuentro con que el rango de un byte es de -127 a 127 y no se si al sumarlos en decimal, la suma hexadecimal se mantiene y además también tengo la duda que que sucede con el acarreo.
Lo que he intentado hacer es lo siguiente, pero se que no es así:
byte[] challenge=new byte[16];
for (int j=6;j<22;j++) challenge[j-6]=bufferEntrada[j];
String password="world";
byte[] pwd=password.getBytes();
byte[] sumado=new byte[16];
for (int j=0;j<11;j++) sumado[j]=(byte)0;
for (int j=11;j<16;j++) sumado[j]=(byte)(challenge[j]+pwd[j-11]);
MessageDigest md=MessageDigest.getInstance("MD5");
byte[] cifrado=new byte[16];
md.update(sumado);
cifrado = md.digest();
Mi problema es que he intentado pasar la cadena de caracteres a un array de bytes, para luego sumarlos byte a byte, pero me encuentro con que el rango de un byte es de -127 a 127 y no se si al sumarlos en decimal, la suma hexadecimal se mantiene y además también tengo la duda que que sucede con el acarreo.
Lo que he intentado hacer es lo siguiente, pero se que no es así:
byte[] challenge=new byte[16];
for (int j=6;j<22;j++) challenge[j-6]=bufferEntrada[j];
String password="world";
byte[] pwd=password.getBytes();
byte[] sumado=new byte[16];
for (int j=0;j<11;j++) sumado[j]=(byte)0;
for (int j=11;j<16;j++) sumado[j]=(byte)(challenge[j]+pwd[j-11]);
MessageDigest md=MessageDigest.getInstance("MD5");
byte[] cifrado=new byte[16];
md.update(sumado);
cifrado = md.digest();
1 Respuesta
Respuesta de todoswing
1