MD5 с Android и PHP - PullRequest
       6

MD5 с Android и PHP

8 голосов
/ 02 января 2012

Я использую md5 для защиты своих сообщений на backend-сервере с PHP. Параметры отправляются через HTTP Post.

У меня есть одна проблема, результат моего вычисления 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.

Ответы [ 2 ]

7 голосов
/ 02 января 2012

Похоже, вам нужно передать кодированную строку md5 в PHP:

md5(utf8_encode($string));
1 голос
/ 02 января 2012

Возможно, вы используете кодировку платформы по умолчанию.

Вместо этого попробуйте:

digest.update(s.getBytes("UTF-8");
...