Полное название MD5 — Алгоритм 5-го дайджеста сообщения. Дайджест сообщения обычно относится к хэш-преобразованию строки байтов (сообщения), которое заключается в преобразовании строки байтов любой длины в большое целое число определенной длины. MD5 преобразует «байтовую строку» любой длины в большое 128-битное целое число и представляет собой необратимый алгоритм преобразования строк. Другими словами, даже если вы видите исходную программу и описание алгоритма, вы не можете преобразовать MD5. Значение равно. с математической точки зрения преобразуется обратно в исходную строку, поскольку существует бесконечно много исходных строк, что немного похоже на математическую функцию, не имеющую обратной функции.
Скопируйте код кода следующим образом:
импортировать java.security.MessageDigest;
общественный класс Test_MD5{
public Final static String MD5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'а', 'б', 'в', 'г', 'е', 'е' };
пытаться {
byte[]strTemp=s.getBytes();
//Создаем объект MessageDigest, используя MD5
MessageDigestmdTemp=MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[]md=mdTemp.digest();
intj=md.длина;
charstr[]=newchar[j*2];
интк=0;
for(inti=0;i<j;i++){
byteb=md[я];
//System.out.println((int)b);
//Шифрование числа (int) b двойными байтами
str[k++]=hexDigits[b>>4&0xf];
str[k++]=hexDigits[b&0xf];
}
returnnewString (строка);
}catch(Exceptione){returnnull;}
}
//тест
publicstaticvoidmain(String[]args){
System.out.println("Шифрование MD5 caidao:/n"+Test_MD5.MD5("caidao"));
System.out.println("//www.VeVB.COm/ после шифрования MD5:/n"+Test_MD5.MD5("//www.VeVB.COm/"));
}
}
Типичным применением MD5 является создание отпечатка пальца сообщения (байтовой строки) для предотвращения его «подделки». Например, вы пишете абзац в файле readme.txt, генерируете значение MD5 для этого readme.txt и записываете его. Затем вы можете распространить этот файл среди других. Если другие изменят файл, вы его найдете. при пересчете MD5 этого файла. Если существует стороннее сертификационное агентство, использование MD5 также может предотвратить «отказ» от автора файла. Это так называемое приложение цифрового шифрования.
MD5 также широко используется в технологии шифрования и дешифрования. Во многих операционных системах пароль пользователя хранится в виде значения MD5 (или других подобных алгоритмов). Когда пользователь входит в систему, система вычисляет пароль, введенный пользователем. Затем значение MD5 сравнивается со значением MD5, сохраненным в системе, и система не «знает», какой у пользователя пароль.
MD5 теоретически является односторонним хешем, и некоторые хакеры используют метод, называемый «работа по словарю», чтобы взломать этот пароль. Существует два способа получения словаря. Один — это ежедневный сбор строковых таблиц, используемых в качестве паролей, а другой – создание метода перестановки и комбинирования. Во-первых, с помощью программы MD5 вычислите значения MD5 этих элементов словаря. , а затем использовать целевые значения MD5, которые ищутся в этом словаре.
Даже если предположить, что максимальная длина пароля равна 8, а пароль может состоять только из букв и цифр, всего 26+26+10=62 символа, количество записей в словаре, созданном комбинацией, составит P (62,1)+P(62, 2)....+P(62,8), это уже астрономическое число. Для хранения этого словаря требуется дисковая группа уровня TB, и этот метод также имеет обязательное условие: то есть получить целевую учетную запись. Это возможно только в том случае, если пароль имеет значение MD5.