この記事では、Javaに付属のMessaged Gigestを使用して、テキストのMD5暗号化アルゴリズムを実装しています。特定のコードは次のとおりです。
/ ** *@説明:文字列をmd5に変換 */パッケージcn.yicha.novel.util; java.security.messagedigestをインポートします。 java.security.nosuchalgorithmexceptionをインポートします。パブリッククラスparsemd5 { / ** * @param str * @return * @description:32ビット小文字md5 * / public static string parsestrtomd5l32(string str){string relt = null; try {MessagedGest md5 = mesagedgest.getInstance( "md5"); byte [] 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)); } strimp = stringbuffer.toString(); } catch(nosuchalgorithmexception e){e.printstacktrace(); } Return Rettr; } / ** * @param str * @return * @description:32-bit repercase md5 * / public static string parsestrtomd5u32(string str){string rect = parsestrtomd5l32(str); if(stent!= null){strim = rest.touppercase(); } Return Rettr; } / ** * @param str * @return * @description:16ビット小文字md5 * / public static string parsestrtomd5u16(string str){string strint = parsestrtomd5l32(str); if(stent!= null){strib = stent.touppercase()。substring(8、24); } Return Rettr; } / ** * @param str * @return * @description:16-bit repercase md5 * / public static string parsestrtomd5l16(string str){string strint = parsestrtomd5l32(str); if(stent!= null){strib = rest.Substring(8、24); } Return Rettr; }}2番目の状況: Javaソフトウェア開発プロセス中、一部のデータは必然的に暗号化されます。したがって、Javaは、テキストの暗号化アルゴリズムのMESSAGED GIGEST実装を提供します。以下は、テキストを暗号化するMD5暗号化ツールのコードの例です。
JavaのMD5暗号化アルゴリズムのフルバージョン:
パッケージnet.yuerwan.commons.util; Import java.security.messagegest; import java.security.nosuchalgorithmexception; Import org.apache.commons.lang.stringutils; public class md5util {/*** 1。 @return暗号化されたコンテンツ*/public static string texttomd5l32(string plantext){string result = null; //最初に空であるかどうかを判断します(stringutils.isblank(plaintext){return null;} try {//最初にインスタントアンドイニシャル化MD = MESAGEST.GETINSTANCE(MD5 ");オペレーティングシステムのフォーマット形式[] btinput = plaintext.getBytes(); //取得したバイトアレイmd.update(btinput); //ハッシュ計算をファイルし、結果バイトを返し、btresult = md.digest(); :btresult){int bt = b&0xff; if(bt <16){sb.append(0);} sb.append(integer.tohexstring(bt));} result = sb.tostring();} citchate()テキスト32ビットMD5大文字* @Param Plantextテキストは暗号化されます* @returnコンテンツ*/public Static String TextTomd5U32(String Plantext){if(Stringutils.isblank(Plaintext)){return null;}文字列result = texttomd5l32(plaintext);3番目のケース: MD5暗号化アルゴリズムのJava実装
その他; Import Java.security.MessageGest; Import Java.security.NosuchalgorithMexception;/** MD5 Algorithm*/Public Array Private final Static String [] Strdigits = {"0"、 "1"、 "2"、 "4" "7" "7" "7" "7" "7" "7" "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7" 7 "7"、 "a"、 "b"、 "c"、 "d"、 "e"、 "f"}; public Md5(){} //フォームを数値として返すprivate private static string bytetoarraystring(byte bbyte){int iret = bbyte; // system.out.println( "iret ="+iret); if(iret <0){iRet += 256; } int id1 = iret / 16; int id2 = iret%16; return strdigits [id1] + strdigits [id2]; } //返されるフォームは、桁のprivate private static string bytetonum(byte bbyte){int iret = bbyte; System.out.println( "IRET1 =" + IRET); if(iret <0){iRet += 256; } return string.valueof(iret); } //バイト配列を16進列に変換するprivate static string 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); MESSAGEDGEST MD = MESSAGEDGEST.GETINSTANCE( "MD5"); // md.digest()この関数の返品値は、ハッシュresults tring = bytetostring(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")); }}