В этой статье используется MessageDigest, которая поставляется с Java, для реализации алгоритма шифрования MD5 для текста. Конкретный код заключается в следующем:
/ ** *@Описание: преобразовать строку в md5 */ package cn.yicha.novel.util; Импорт java.security.messagedigest; Импорт java.security.nosuchalgorithmexception; открытый класс parsemd5 { / ** * @param str * @return * @description: 32-разрядный нижний регистр md5 * / public static String parsestrtomd5l32 (string str) {string rtr = null; try {messagegest md5 = massagedigest.getinstance ("md5"); byte [] bytes = md5.digest (str.getbytes ()); StringBuffer StringBuffer = new StringBuffer (); для (байт B: байты) {int bt = b & 0xff; if (bt <16) {stringbuffer.append (0); } stringbuffer.append (integer.tohexstring (bt)); } rtrs = stringBuffer.toString (); } catch (nosuchalgorithmexception e) {e.printstacktrace (); } return rtrs; } / ** * @param str * @return * @description: 32-разрядный верхний регистр md5 * / public static String parsestrtomd5u32 (String str) {String rtrts = parsestrtomd5l32 (str); if (rtrs! = null) {rtrs = rtrs.touppercase (); } return rtrs; } / ** * @param str * @return * @description: 16-битный нижний регистр md5 * / public static String parsestrtomd5u16 (String str) {String rtrts = parsestrtomd5l32 (str); if (rtrs! = null) {rtrs = rtrs.touppercase (). substring (8, 24); } return rtrs; } / ** * @param str * @return * @description: 16-битный верхний регистр md5 * / public static String parsestrtomd5l16 (string str) {string rtrts = parsestrtomd5l32 (str); if (rtrs! = null) {rtrs = rtrs.substring (8, 24); } return rtrs; }}Вторая ситуация: в процессе разработки программного обеспечения Java некоторые данные неизбежно будут зашифрованы. Таким образом, Java обеспечивает собственную реализацию алгоритма шифрования для текста. Ниже приведен пример кода инструмента шифрования MD5, который шифрует текст:
Полная версия алгоритма шифрования MD5 в Java :
пакет net.yuerwan.commons.util; import java.security.messagedigest; import java.security.nosuchalgorithmexception; import org.apache.commons.lang.stringutils; public class md5util {/*** 1. 32-битный декоративный Зашифрованный содержимое*/public Static String TextTomd5l32 (String plainText) {string result = null; // сначала определить, является ли он пустым if (stringUtils.isblank (plaintext)) {return null;} try {// Первый экземпляр и инициализируйте Messagedigest md = messagedegest.getStance ("md5"); операционная система byte [] btinput = plantext.getbytes (); // Подал полученный байт массив md.update (btinput); // Подать хэш расчет и вернуть результат byte [] btresult = md.digest (); // подходит для длины данных, полученных после расчета hash stringbuffer sb = new string buffer ();); bt = b & 0xff; if (bt <16) {sb.append (0);} sb.append (integer.tohexstring (bt));} result = sb.toString ();} catch (nosuchalgorithmexcept e) {e.printstacktrace ();} вернуть результат; * @param Plaintext Text, чтобы быть зашифрованным* @return зашифрованное содержимое*/public Static String TextTomd5u32 (строка plantext) {if (stringUtils.isblank (plunext)) {return null;} string result = texttomd5l32 (plaintext); return.touppercase ();}Третий случай: реализация Java Algorithm шифрования 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")); }}