이 기사는 Java와 함께 제공되는 MessageDigest를 사용하여 텍스트의 MD5 암호화 알고리즘을 구현합니다. 특정 코드는 다음과 같습니다.
/ ** *@description : 문자열을 md5로 변환 */ 패키지 cn.yicha.novel.util; java.security.messagegegest; java.security.nosuchalgorithmexception import; public class parsemd5 { / ** * @param str * @return * @description : 32 비트 소문자 md5 * / public static string parsestrtomd5l32 (String str) {String rest = null; try {messageDigest md5 = messageDigest.getInstance ( "md5"); 바이트 [] bytes = md5.digest (str.getBytes ()); StringBuffer StringBuffer = New StringBuffer (); for (byte b : bytes) {int bt = b & 0xff; if (bt <16) {StringBuffer.append (0); } StringBuffer.Append (Integer.toHexString (bt)); } stringBuffer.toString (); } catch (nosuchalgorithmexception e) {e.printstacktrace (); } 반환 구속; } / ** * @param str * @return * @description : 32 비트 대문자 md5 * / public static string parsestrtomd5u32 (String str) {String rest = parsestrtomd5l32 (str); if (rest! = null) {rest = rest.touppercase (); } 반환 구속; } / ** * @param str * @return * @description : 16 비트 소문자 md5 * / public static string parsestrtomd5u16 (String str) {String rest = parsestrtomd5l32 (str); if (vest! = null) {rest = rest.touppercase (). substring (8, 24); } 반환 구속; } / ** * @param str * @return * @description : 16 비트 대문자 md5 * / public static string parsestrtomd5l16 (String str) {String rest = parsestrtomd5l32 (str); if (rest! = null) {substring (8, 24); } 반환 구속; }}두 번째 상황 : Java 소프트웨어 개발 프로세스 중에 일부 데이터는 필연적으로 암호화됩니다. 따라서 Java는 텍스트에 대한 암호화 알고리즘의 자체 MessageDigest 구현을 제공합니다. 다음은 텍스트를 암호화하는 MD5 암호화 도구 코드의 예입니다.
Java의 MD5 암호화 알고리즘의 정식 버전 :
package net.yuerwan.commons.util; import java.security.messagegegest; import java.security.nosuchalgorithmexception; import org.apache.commons.lang.stringutils import org.apache.commons.lang.stringutils; public class md5util {/*** 1. 32-bit md5 ac @return 암호화 된 콘텐츠*/public static string textTomd5l32 (String plainText) {String result = null; // 먼저 비어있는 경우 if (stringUtils.isblank (PlainText)) {return null;} try {// 초기화 및 초기화 messageedigest md = messagedigest.getIgest.getIgest.getIgest.GetIgest.getIgest.getIgest.getIgest.getIgest.getInstance ( "md5"); 운영 체제의 인코딩 형식 byte [] btinput.getBytes (); // 획득 된 바이트 배열 md.update (btinput); // 해당 계산을 제출하고 결과를 반환하고 [] btresult = md.digest (); // hash spher sb의 길이에 적합합니다. : btresult) {int bt = b & 0xff; if (bt <16) {sb.append (0);} sb.append (integer.tohexstring (bt));} result = sb.tostring ();} catch (nosuchalgorithmection e) {e.printstacktract (); 텍스트 32 비트 md5 대문자* @param plaintext 텍스트 암호화* @return 암호화 된 콘텐츠*/public static string textTomd5u32 (String plaintomd5u32) {if (stringUtils.isblank (plaintext)) {return null;} 문자열 결과 = textTomd5l32 (return nextomd5l32); retud.touppercase ();}.세 번째 경우 : MD5 암호화 알고리즘의 Java 구현
기타; import java.security.messagegedigest; import java.security.nosuchalgorithmexception;/** md5 알고리즘*/public class md5 {// global array private final string [] strdigits = { "0", "1", "2", "3", "4", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", ",", "," "a", "b", "c", "d", "e", "f"}; public md5 () {} // 숫자로서 양식을 반환하십시오. // system.out.println ( "iret ="+iret); if (iret <0) {iret += 256; } int id1 = iret / 16; int id2 = iret % 16; return strdigits [id1] + strdigits [id2]; } // return form은 숫자 개인 정적 문자열 바이 테톤 (byte bbyte) {int iret = bbyte; System.out.println ( "iret1 =" + iret); if (iret <0) {iret += 256; } return string.valueof (iret); } // 바이트 배열을 16 진수 문자열로 변환 개인 정적 문자열 bytetoString (byte [] bbyte) {StringBuffer sbuffer = new StringBuffer (); for (int i = 0; i <bbyte.length; i ++) {sbuffer.append (bytetoArraystring (bbyte [i]); } return sbuffer.toString (); } public static string getMd5code (String strobj) {String resulttring = null; try {resultstring = new String (strobj); MessageDigest MD = MessageDigest.getInstance ( "MD5"); // md.digest ()이 함수의 반환 값은 해시 resultstring = bytoString을 저장하는 바이트 배열입니다 (md.digest (strobj.getBytes ())); } catch (nosuchalgorithmexception ex) {ex.printstacktrace (); } return resultString; } public static void main (String [] args) {md5 getmd5 = new Md5 (); System.out.println (getmd5.getmd5code ( "000000")); }}