Я разрабатываю приложение для Android, а в определенной части приложения мне нужно вычислить MD5 определенной строки. Я использую следующий код, но то и выходной строки, если байт, который должен преобразовать в строку ниже, чем 10, то он пропустит 0 в представлении два байта:Проблема с MD5 MD5, отсутствующие символы
MessageDigest di = java.security.MessageDigest.getInstance("MD5");
di.update(cadena.getBytes());
byte mdi[] = di.digest();
StringBuffer md5= new StringBuffer();
for (byte b : mdi) {
md5.append(Integer.toHexString(0xFF & b));
}
Например, если я передаю строку 109370, то MD5 он должен будет вернуть 932ff0696b0434d7a83e1ff84fe298c5, но вместо этого он вычисляет 932ff0696b434d7a83e1ff84fe298c5.
Это потому, что массив байтов имеет 4 и Integer.toHexString() возвращает только 1 массив символов вместо двух.
Любая мысль о том, как я могу справиться с этим?
Спасибо!
Спасибо за пример, я думаю, что это плохо объяснено в функции docstring. Но фрагмент, который вы отправили, кажется, работает нормально. Таким образом, для этого невозможно использовать пользовательский funciton. – pablora