Estoy usando un md5 para asegurar mis publicaciones a un backendserver que ejecuta PHP. Los parámetros se envían a través de una publicación HTTP.md5 con Android y PHP
Tengo un problema, el resultado de mi cálculo md5 es diferente en Android y en el servidor PHP si hay un ü, ä o ö en uno de los parámetros de entrada.
En Android, el hash se calcula a través de esta función:
public static final String md5(final String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest
.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String h = Integer.toHexString(0xFF & messageDigest[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
en el servidor PHP simplemente utilizo
md5() function.
Suena como un problema de codificación (ISO-8859-1 vs. UTF-8 por ejemplo). ¿Qué juegos de caracteres estás usando? ¿Puedes mostrar un código? –
seguro, editaré mi publicación. – tobias
por cierto, es posible que desee usar SHA1 u otro algoritmo para proteger sus publicaciones ... MD% ya no es seguro –