Во -первых, давайте поймем реализацию шифрования MD5 с следующего рисунка, следующим образом
Пакет com.pb; импортировать java.io.unsupportedencodingexception; import java.security.messagedigest; import java.security.nosuchalgorithmexception; импорт java.util.scanner;/* Проверьте MD5* 1. Инициализируйте информацию об этом. Резюме* 4. Преобразование Byte [] в шестнадцатеричную строку с 32-битным поиском*/public class md5 {/** Сгенерировать MD5 с передаваемой в строке параметра*/public void GenerateMd5 (String Input) {try {// 1. Инициализировать объект резюме информации MOSSAGEDIGEST и укажите его как MD5 без независимого от случая MOSSAGEDIGEST MD = MOSSAGEDIGEST.GETINSTANCE ("MD5"); // 2. Пропустите строку, которая будет рассчитана для обновления сводной информации, передаваемость IS IS Byte Array Byte [], // преобразовать строку в массив байтов с использованием метода getbytes () // При указании его кодирование символов является UTF-8 md.update (input.getbytes («UTF-8»); // 3. Рассчитайте метод резюме информации digest () // Возвращение значения - байт массив байт [] hashcode = md.digest (); // 4. Преобразовать байт [] преобразовать в шестнадцатеричную строку с 32-битным поиском // объявить объект StringBuffer для хранения последнего значения stringBuffer sb = new StringBuffer (); // Передача байтового массива для (Byte B: HashCode) {// Преобразование содержимого массива в шестнадцатеричную, SB.Append (farment.fordigit (b >> 4 & 0xf, 16)); // Перевод в 32-битный шестнадцатеричный SB.Append (Harxer.fordigit (b & 0xf, 16)); } System.out.println («Результат после шифрования:»+sb.toString ()); } catch (nosuchalgorithmexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (unsupportedencodingexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); }} public static void main (string [] args) {// Объявит объект, который шифрует класс MD5 MD5 MD5 = new MD5 (); // Использование сканера для ввода сканера сканера символов = новый сканер (System.in); System.out.println («Пожалуйста, введите контент, который будет зашифрован:»); String input = scanner.nextline (); // вызов метода шифрования MD5.generateMd5 (input); }} результат:
Пожалуйста, введите контент, который будет зашифрован:
Результатом после изучения процесса шифрования MD5 является: B826CDAC46F01DCC8CCC60A76CEBF858
Второй код:
Пакет Test.md5; Import java.security.messagedigest; открытый класс md5util {public final Static String md5 (String s) {char hexdigits [] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; try {byte [] btinput = s.getbytes (); // Получить MessageDigest объект алгоритма Digest MD5. // Обновление Digest mdinst.update (btinput); // Получите Byte Ciphertext Byte [] md = mdinst.digest (); // преобразовать шифровый текст в шестнадцатеричную форму int j = md.length; char str [] = new char [j * 2]; int k = 0; for (int i = 0; i <j; i ++) {byte byte0 = md [i]; str [k ++] = hexdigits [byte0 >>> 4 & 0xf]; str [k ++] = hexdigits [byte0 & 0xf]; } вернуть новую строку (str); } catch (Exception e) {e.printstackTrace (); вернуть ноль; }} public static void main (string [] args) {System.out.println (md5util.md5 ("20121221")); System.out.println (md5util.md5 ("шифрование")); }}Третий кусок кода: реализация Java Алгоритма шифрования MD5
Пакет другой; импорт java.security.messagedigest; import java.security.nosuchalgorithmexception;/** md5 algorithm*/public class md5 {// global array private static String [] strdigits = {«0», «1», «2», «3», «4», «5», «7», «7», «7», «7», «7», «7», «7», «7», «7», «8», «8», «8», «8», «8», «8», «8», «8», «8», «3», «8», «3», «3», «8», «8», «8», «8», «3», «8», «8». "a", "b", "c", "d", "e", "f"}; public md5 () {} // вернуть форму как число и строка частной статической строки BytetOarrayString (byte bbyte) {int ret = bbyte; // System.out.println ("iRet ="+iRet); if (iret <0) {iret += 256; } int id1 = iRet / 16; int id2 = iRet % 16; вернуть strdigits [id1] + strdigits [id2]; } // return form - это только цифра частной статической строки bytetonum (byte bbyte) {int ret = bbyte; System.out.println ("iRet1 =" + iRet); if (iret <0) {iret += 256; } return string.valueof (iRet); } // Конвертировать массив байтов в шестнадцатеричную строку частной статической строки bytetoString (byte [] bbyte) {stringbuffer sbuffer = new StringBuffer (); for (int i = 0; i <bbyte.length; i ++) {sbuffer.append (bytetoarraystring (bbyte [i])); } вернуть sbuffer.toString (); } public static String getMd5code (String strobj) {string resultString = null; try {ResultString = new String (Strobj); MessageDigest MD = MOSSAGEDIGEST.GETINSTANCE ("MD5"); // md.digest () Обратное значение этой функции - это массив байтов, в котором хранится хэш -результаты = BytetoString (md.digest (strobj.getbytes ())); } catch (nosuchalgorithmexception ex) {ex.printstacktrace (); } вернуть результаты течения; } public static void main (string [] args) {md5 getMd5 = new md5 (); System.out.println (getmd5.getmd5code ("000000")); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.