Существует ли какой-либо метод для генерации MD5-хэша строки в Java?
Переведено автоматически
Ответ 1
Класс MessageDigest может предоставить вам экземпляр дайджеста MD5.
При работе со строками и крипто-классами обязательно всегда указывайте кодировку, в которой вы хотите представить байтовое представление. Если вы просто используете string.getBytes(), будет использоваться платформа по умолчанию. (Не все платформы используют одинаковые значения по умолчанию)
Если у вас много данных, взгляните на .update(xxx) методы, которые можно вызывать повторно. Затем вызовите .digest(), чтобы получить результирующий хэш.
Передайте весь ввод в виде byte[] и вычислите хэш за одну операцию с помощью md.digest(bytes).
Загружайте MessageDigest по одному byte[] фрагменту за раз, вызывая md.update(bytes). Когда вы закончите добавлять входные байты, вычислите хэш с помощью md.digest().
byte[] Возвращаемый md.digest() является хэшем MD5.
Ответ 3
Если вы действительно хотите получить ответ в виде строки, а не массива байтов, вы всегда можете сделать что-то вроде этого:
Stringplaintext="your text here"; MessageDigestm= MessageDigest.getInstance("MD5"); m.reset(); m.update(plaintext.getBytes()); byte[] digest = m.digest(); BigIntegerbigInt=newBigInteger(1,digest); Stringhashtext= bigInt.toString(16); // Now we need to zero pad it if you actually want the full 32 chars. while(hashtext.length() < 32 ){ hashtext = "0"+hashtext; }
Ответ 4
Возможно, вы также захотите взглянуть на класс DigestUtils проекта apache commons codec, который предоставляет очень удобные методы для создания дайджестов MD5 или SHA.