خوارزمية ملخص الرسائل MD5 (الاسم الصيني هو خوارزمية ملخص الرسائل الإصدار الخامس) هي وظيفة تجزئة تستخدم على نطاق واسع في مجال أمان الكمبيوتر وهي خوارزمية تجزئة شائعة الاستخدام نسبيًا.
هناك طريقتان لتحقيق ذلك في Java، فلنتحدث عن الطريقة الأكثر إزعاجًا أولاً، وهي الكود:
انسخ رمز الكود كما يلي:
الطبقة العامة md5_test {
// ثابت سلسلة MD5
سلسلة ثابتة نهائية خاصة[] hexDigits = { "0"، "1"، "2"، "3"، "4"،
"5"، "6"، "7"، "8"، "9"، "أ"، "ب"، "ج"، "د"، "ه"، "و" }؛
public static void main(String[] args) {
// TODO طريقة تم إنشاؤها تلقائيًا stub
يحاول {
messageDigest messageDigest= messageDigest.getInstance("MD5");
System.out.println(byteArrayToHexString(messageDigest.digest("baidu.com".getBytes())));
} التقاط (NoSuchAlgorithmException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
سلسلة ثابتة خاصة byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
لـ (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
إرجاع النتيجةSb.toString();
}
/** تحويل البايت إلى سلسلة في شكل سداسي عشري*/
سلسلة ثابتة خاصة byteToHexString (بايت ب) {
كثافة العمليات ن = ب؛
إذا (ن <0)
ن = 256 + ن؛
كثافة العمليات d1 = ن / 16؛
كثافة العمليات d2 = ن % 16;
إرجاع hexDigits[d1] + hexDigits[d2];
}
}
ما يلي بسيط، لكنك تحتاج إلى استيراد حزمة jar: commons-codec،
على سبيل المثال، أستخدم كود commons-codec-1.4.jar هذا:
انسخ رمز الكود كما يلي:
import org.apache.commons.codec.digest.DigestUtils;
الطبقة العامة تومين {
public static void main(String[] args) {
System.out.println(DigestUtils.md5Hex("baidu.com"));
}
}