บทความนี้ใช้ MessageDigest ซึ่งมาพร้อมกับ Java เพื่อใช้อัลกอริทึมการเข้ารหัส MD5 สำหรับข้อความ รหัสเฉพาะมีดังนี้:
/ ** *@คำอธิบาย: แปลงสตริงเป็น md5 */ แพ็คเกจ cn.yicha.novel.util; นำเข้า Java.security.MessageDigest; นำเข้า java.security.nosuchalgorithmexception; คลาสสาธารณะ parsemd5 { / ** * @param str * @return * @description: ตัวพิมพ์เล็ก 32 บิต Md5 * / สตริงคงที่สาธารณะ parsestrtomd5l32 (String str) {string rest = null; ลอง {messageGeSest md5 = messageGeSt.getInstance ("md5"); ไบต์ [] ไบต์ = md5.digest (str.getBytes ()); StringBuffer StringBuffer = new StringBuffer (); สำหรับ (ไบต์ B: ไบต์) {int bt = b & 0xff; if (bt <16) {stringbuffer.append (0); } stringbuffer.append (integer.tohexstring (bt)); } rest = stringbuffer.toString (); } catch (nosuchalgorithmexception e) {e.printstacktrace (); } return rest; } / ** * @param str * @return * @description: 32- บิตตัวพิมพ์ใหญ่ md5 * / สตริงคงที่สาธารณะ parsesttomd5u32 (สตริง str) {string rest = parsesttomd5l32 (str); if (rest! = null) {rest = rest.touppercase (); } return rest; } / ** * @param str * @return * @description: ตัวพิมพ์เล็ก 16 บิต md5 * / สตริงคงที่สาธารณะ parsestrtomd5u16 (สตริง str) {string rest = parsestrtomd5l32 (str); if (rest! = null) {rest = rest.touppercase (). substring (8, 24); } return rest; } / ** * @param str * @return * @description: 16 บิต uppercase Md5 * / สตริงคงที่สาธารณะ parsesttomd5l16 (สตริง str) {string rest = parsesttomd5l32 (str); if (rest! = null) {rest = rest.substring (8, 24); } return rest; -สถานการณ์ที่สอง: ในระหว่างกระบวนการพัฒนาซอฟต์แวร์ Java ข้อมูลบางอย่างจะถูกเข้ารหัสอย่างหลีกเลี่ยงไม่ได้ ดังนั้น Java จึงจัดเตรียมการใช้งานอัลกอริทึมการเข้ารหัสสำหรับข้อความ ต่อไปนี้เป็นตัวอย่างของรหัสการเข้ารหัส MD5 ที่เข้ารหัสข้อความ:
อัลกอริทึมการเข้ารหัส MD5 เวอร์ชันเต็มใน Java :
แพ็คเกจ net.yuerwan.commons.util; นำเข้า java.security.messagedigest; นำเข้า java.security.nosuchalgorithmexception; นำเข้า org.apache.Commons.lang.stringutils; @return เนื้อหาที่เข้ารหัส*/สตริงคงที่ public String textTomd5l32 (String plaintext) {string result = null; // ก่อนกำหนดว่ามันจะว่างเปล่าถ้า (stringutils.isblank (plaintext)) {return null;} ลอง {// อินสแตนซ์แรกและเริ่มต้น ของระบบปฏิบัติการไบต์ [] btinput = plaintext.getBytes (); // ไฟล์ไฟล์ไบต์ที่ได้รับ md.update (btinput); // ไฟล์การคำนวณแฮชและส่งคืนผลลัพธ์ไบต์ [] btresult = md.digest (); // พอดีกับความยาวของข้อมูลที่ได้รับ btresult) {int bt = b & 0xff; if (bt <16) {sb.append (0);} sb.append (จำนวนเต็ม tohexstring (bt));} result = sb.toString ()}} catch (nosuchalgorithmexception e) 32 บิต md5 uppercase* @param ข้อความ plaintext ที่จะเข้ารหัส* @return เนื้อหาที่เข้ารหัส*/สตริงคงที่สาธารณะ texttomd5u32 (สตริงธรรมดา) {ถ้า (stringutils.isblank (plaintext)) {return null;กรณีที่สาม: การใช้งาน Java ของอัลกอริทึมการเข้ารหัส MD5
แพคเกจอื่น ๆ ; นำเข้า java.security.messageDigest; นำเข้า Java.security.nosuchalgorithmexception;/** md5 อัลกอริทึม*/คลาสสาธารณะ MD5 {// อาร์เรย์ระดับโลกที่เป็นส่วนตัว "A", "B", "C", "D", "E", "F"}; Public Md5 () {} // ส่งคืนแบบฟอร์มเป็นหมายเลขและสตริงสตริงคงที่ส่วนตัว 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]; } // แบบฟอร์มการส่งคืนเป็นเพียงสตริงคงที่เป็นหลักแบบคงที่ bytetonum (byte bbyte) {int iret = bbyte; System.out.println ("iret1 =" + iret); if (iret <0) {iret += 256; } return string.valueof (iret); } // แปลงอาร์เรย์ไบต์เป็น hexadecimal สตริงสตริงคงที่ส่วนตัว bytetoString (byte [] bbyte) {stringbuffer sbuffer = new StringBuffer (); สำหรับ (int i = 0; i <bbyte.length; i ++) {sbuffer.append (bytetoarraystring (bbyte [i])); } return sbuffer.toString (); } สตริงคงที่สาธารณะ getMd5Code (String strobj) {String resultsTring = null; ลอง {resultString = สตริงใหม่ (strobj); MESAGEDIGEST MD = MESEGATEGEST.GETINSTANCE ("MD5"); // md.digest () ค่าส่งคืนของฟังก์ชั่นนี้คืออาร์เรย์ไบต์ที่เก็บ hash resultstring = bytetostring (md.digest (strobj.getBytes ())); } catch (nosuchalgorithmexception ex) {ex.printstacktrace (); } return resultstring; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {md5 getMd5 = ใหม่ md5 (); System.out.println (getMd5.GetMd5Code ("000000")); -