Я использую md5 для защиты своих сообщений на сервере backend, работающем под управлением PHP. Параметры отправляются через HTTP-сообщение.md5 с Android и PHP
У меня есть одна проблема: результат вычисления md5 отличается от Android и PHP-сервера, если в одном из входных параметров есть ü, ä или ö.
На Android, хэш вычисляется с помощью этой функции:
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 "";
}
на сервере PHP я просто использую
md5() function.
Звучит как вопрос кодирования (ISO-8859-1 против UTF-8, например). Какие наборы символов вы используете? Можете ли вы показать код? –
уверен, я отредактирую свое сообщение. – tobias
, кстати, вы можете использовать SHA1 или другой алгоритм для защиты ваших сообщений ... MD% больше не защищен –