تستخدم هذه المقالة The MessagedIgest ، التي تأتي مع Java ، لتنفيذ خوارزمية تشفير MD5 للنص. الرمز المحدد كما يلي:
/ ** *@الوصف: تحويل السلسلة إلى md5 */ package cn.yicha.novel.util ؛ استيراد java.security.messagedigest ؛ استيراد java.security.nosuchalgorithmexception ؛ الفئة العامة parsemd5 { / ** * param str * return * description: 32 bit smoolcase md5 * / public static string parsestrtromd5l32 (String str) {String rive = null ؛ حاول {messagedigest md5 = messagedigest.getInstance ("md5") ؛ byte [] bytes = md5.digest (str.getBytes ()) ؛ StringBuffer StringBuffer = new StringBuffer () ؛ لـ (byte b: bytes) {int bt = b & 0xff ؛ if (bt <16) {StringBuffer.Append (0) ؛ } StringBuffer.Append (Integer.ToHexString (BT)) ؛ } rive = stringBuffer.toString () ؛ } catch (nosuchalgorithMexception e) {e.printstacktrace () ؛ } إرجاع كبح ؛ } / ** * param str * return * description: 32-bit asporcase md5 * / public static string parsestrtrtromd5u32 (string str) {string croyn if (crown! = null) {rect = rect.toupperCase () ؛ } إرجاع كبح ؛ } / ** * param str * regurn * description: 16-bit sumrase md5 * / public static string parsestrtrtromd5u16 (String str) {string croyn if (crown! = null) {rect = rect.toupperCase (). substring (8 ، 24) ؛ } إرجاع كبح ؛ } / ** * param str * return * description: 16-bit ascorcase md5 * / public static string parsestrtrtromd5l16 (String str) {string croyn if (crown! = null) {croft = rect.subString (8 ، 24) ؛ } إرجاع كبح ؛ }}الموقف الثاني: خلال عملية تطوير برامج Java ، سيتم تشفير بعض البيانات حتماً. لذلك ، توفر Java تنفيذ Messagedigest الخاص لخوارزمية التشفير للنص. فيما يلي مثال على رمز أداة تشفير MD5 التي تشفر النص:
النسخة الكاملة من خوارزمية تشفير MD5 في جافا :
package net.yuerwan.commons.util ؛ استيراد java.security.messagedigest ؛ استيراد java.security.nosuchalgorithmexception ؛ استيراد org.apache.commons.lang.stringutils ؛ parial class md5util {/*** 1. المحتوى المشفر*/السلسلة الثابتة العامة textTomD5l32 (سلسلة plaintext) {string result = null ؛ // أولاً حدد ما إذا كان فارغًا إذا كان (stringUtils.IsBlank (plaintext)) {return null ؛ تنسيق بايت نظام التشغيل [] btinput = plaintext.getBytes () ؛ // ملف صفيف البايت الذي تم الحصول عليه md.update (btinput) ؛ btresult) {int bt = b & 0xff ؛ if (bt <16) {sb.append (0) ؛} sb.append (integer.toHexString (bt)) ؛} النتيجة = sb.toString () ؛ 32-bit MD5 ExtraCcase* @param plaintext النص ليتم تشفيرها* محتوى مشفر RETURN*/السلسلة الثابتة العامة textTOMD5U32 (String plaintext) {if (stringUtils.isblank (plaintext))الحالة الثالثة: تنفيذ Java لخوارزمية تشفير MD5
قم بتعبئة أخرى ؛ استيراد java.security.messagedigest ؛ استيراد java.security.nosuchalgorithmexception ؛/** md5 خوارزمية*/الطبقة العامة md5 {// العالمية الصفيف الخاص بسلسلة ثابتة خاصة [، 6 " "A" ، "B" ، "C" ، "D" ، "E" ، "F"} ؛ Public Md5 () {} // نموذج الإرجاع كرقم وسلسلة String static static bytetoArrayString (byte bbyte) {int iret = bbyte ؛ // system.out.println ("iret ="+iret) ؛ if (iRet <0) {iRet += 256 ؛ } int id1 = iRet / 16 ؛ int id2 = iRet ٪ 16 ؛ إرجاع strdigits [id1] + strdigits [id2] ؛ } // نموذج الإرجاع هو مجرد سلسلة من الأرقام الثابتة (byte bbyte) {int iret = bbyte ؛ System.out.println ("IRET1 =" + IRET) ؛ if (iRet <0) {iRet += 256 ؛ } return string.valueof (IRET) ؛ }. لـ (int i = 0 ؛ i <bbyte.length ؛ i ++) {sbuffer.append (bytetoArrayString (bbyte [i])) ؛ } return sbuffer.toString () ؛ } السلسلة الثابتة العامة getMD5Code (String Strobj) {String ResultString = null ؛ حاول {resultstring = سلسلة جديدة (strobj) ؛ messagedigest md = messagedigest.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")) ؛ }}