я столкнулся ошибка с отсутствующими «00» на левой стороне, при преобразовании строки в зашифрованном формате.
Обычно вы не найдете ошибку в своем приложении, используя общий метод md5.
Итак, проверьте ваше приложение со строкой «sandeep» (я использовал его, потому что он имеет «00» на левой стороне).
Эта проблема испортила мне часы, и, наконец, я нашел следующее решение по ссылке.
«У меня была ошибка с md5 строки с 00 по LeftSide, то есть строка„Сандип“преобразуется в „DCF16D903E5890AABA465B0B1BA51F“, чем собственно«00DCF16D903E5890AABA465B0B1BA51F
Я закончил с этим методом, которые работают круто в моем приложении ".
public static String md5(String inputString) {
try {
// Create MD5 Hash
MessageDigest msgDigest = java.security.MessageDigest.getInstance("MD5");
msgDigest.update(inputString.getBytes());
byte msgDigestBytes[] = msgDigest.digest();
// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < msgDigestBytes.length; i++) {
String h = Integer.toHexString(0xFF & msgDigestBytes[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
Ref: http://www.coderexception.com/CbHuB1uHPWxXUQXi/converting-string-to-md5-gives-add-number-of-digits
примечание: его, вероятно, 31 цифр, потому что его не проложенный. если бы хэш был маленьким числом, у него не было бы ведущих нулей. ответы ниже всех правильно помещают шестнадцатеричные числа. – slipperyseal
Если сторонние библиотеки являются честной игрой, это намного проще (и более правильно) с [Guava] (https://code.google.com/p/guava-libraries/): 'Hashing.md5(). HashString (s, Charsets.UTF_8) .toString() 'возвращает корректный хэш-код MD5, закодированный в кодировке UTF-8. –
Спасибо, я всегда предпочитаю, чтобы кто-то написал код, а Guava - один из моих фаворитов :-) – oshai