logo
GeekFormat

แฮช MD5

อินพุต0 อักขระ · 0 ไบต์
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

เครื่องมือแฮช MD5 ออนไลน์ฟรี โหมดข้อความ/ไฟล์/ชุด/HMAC-MD5, UTF-8/Latin1, ตัวพิมพ์ใหญ่, จัดกลุ่ม 8 ตัวอักษร ⚠️ MD5 ถูกบุกรุก — ห้ามใช้สำหรับจัดเก็บรหัสผ่าน

คำแนะนำที่เกี่ยวข้อง

กรณีการใช้งาน

  • ความสมบูรณ์ของไฟล์: คำนวณ MD5 หลังจากดาวน์โหลดเพื่อเปรียบเทียบกับเช็คซัมทางการ
  • สร้างไดเจสต์แบบชุดสำหรับไฟล์คอนฟิกูเรชันหรือบันทึกประจำรุ่น
  • การเซ็นชื่อ HMAC-MD5 สำหรับการรวมระบบเก่า
  • ขจัดข้อมูลซ้ำผ่านการเปรียบเทียบ MD5 อย่างรวดเร็ว
  • สร้างคีย์แคชเป็นตัวระบุเฉพาะที่สั้น
  • การศึกษา: ทำความเข้าใจอัลกอริทึมแฮชโดยเปรียบเทียบเอาต์พุต MD5/SHA-1/SHA-256

คุณสมบัติ

  • 4 โหมด: ข้อความ ไฟล์ แบบชุดตามบรรทัดและ HMAC-MD5 ครอบคลุมสถานการณ์เช็คซัมทั่วไป
  • การเข้ารหัส UTF-8/Latin1 ที่เลือกได้สำหรับอินพุตระบบต่างๆ
  • แสดงตัวพิมพ์ใหญ่และจัดกลุ่ม 8 ตัวอักษรเพื่อความอ่านง่าย
  • แฮชไฟล์แบบแบ่งส่วน: การอ่านแบบเพิ่มทีละส่วนสำหรับไฟล์ขนาดใหญ่ป้องกันปัญหาหน่วยความจำ
  • โหมดชุด: แต่ละบรรทัดถูกแฮชอย่างอิสระพร้อมเอาต์พุต ดั้งเดิม→แฮช
  • คัดลอกผลลัพธ์ด้วยคลิกเดียว

วิธีการใช้งาน

  1. เลือกโหมด: ข้อความ ไฟล์ ชุดหรือ HMAC-MD5
  2. กำหนดค่าตัวเลือก: การเข้ารหัส ตัวพิมพ์ใหญ่ จัดกลุ่ม 8 ตัวอักษร
  3. ป้อนข้อความ อัปโหลดไฟล์หรือวางเนื้อหาแบบชุด
  4. คัดลอกผลลัพธ์แฮชสำหรับการตรวจสอบหรือสคริปต์

คำถามที่พบบ่อย

MD5 มักใช้ทำอะไร?

MD5 มักใช้สำหรับตรวจสอบความสมบูรณ์ของไฟล์ (เช่น ตรวจสอบการดาวน์โหลด) สร้างไดเจสต์อย่างรวดเร็ว ความเข้ากันได้กับระบบเก่า คีย์แคช และขจัดข้อมูลซ้ำในสถานการณ์ที่ไม่เกี่ยวกับความปลอดภัย MD5 สร้าง 128 บิต (32 ตัวอักษรฐานสิบหก) และเร็วมาก เหมาะสำหรับสถานการณ์การตรวจสอบที่ไม่สำคัญ

MD5 เทียบกับ SHA-256?

MD5 สร้าง 128 บิต (32 hex) เร็วมากแต่ถูกบุกรุก; SHA-256 สร้าง 256 บิต (64 hex) ช้ากว่าแต่ไม่มีการโจมตีด้วยการชนกันในทางปฏิบัติและเป็นที่นิยมสำหรับแอปพลิเคชันสำคัญ

เครื่องมือ SHA-256

เหตุใด MD5 จึงไม่ปลอดภัยสำหรับรหัสผ่าน?

MD5 เร็วมาก — GPU สมัยใหม่สามารถคำนวณแฮชได้หลายพันล้านครั้งต่อวินาที และตารางสีรุ้งทำลายรหัสผ่านทั่วไปทันที ใช้ bcrypt, scrypt หรือ Argon2 สำหรับจัดเก็บรหัสผ่าน

เครื่องมือสร้างรหัสผ่าน

MD5 ถูกบุกรุก — ฉันยังสามารถใช้งานได้ไหม?

ไม่ได้อย่างแน่นอนสำหรับความปลอดภัย (ลายเซ็นดิจิทัล รหัสผ่าน TLS) แต่สำหรับแอปพลิเคชันที่ไม่เกี่ยวกับความปลอดภัย (ตรวจสอบความเสียหายไฟล์ ขจัดข้อมูลซ้ำ คีย์แคช) MD5 ยังเหมาะสม เนื่องจากผู้โจมตีไม่มีแรงจูงใจในการสร้างการชนกัน

แฮช MD5 สามารถ 'ถอดรหัส' ได้หรือไม่?

MD5 เป็นฟังก์ชันทางเดียวและไม่สามารถย้อนกลับได้ทางคณิตศาสตร์ แต่ตารางสีรุ้งและการโจมตีแบบเดรัจฉานสามารถกู้คืนรหัสผ่านอ่อนแอภายในไม่กี่วินาที นั่นคือเหตุผลที่ MD5 ไม่ควรถูกใช้สำหรับจัดเก็บรหัสผ่าน

ไฟล์ขนาดใหญ่จะทำให้ค้างหรือไม่?

ไม่ เครื่องมือใช้การอ่านแบบเพิ่มทีละส่วน — ไฟล์จะไม่ถูกโหลดทั้งหมดลงในหน่วยความจำ ดังนั้นแม้แต่ไฟล์ขนาดหลายกิกะไบต์ก็ถูกประมวลผลอย่างราบรื่นด้วยอินเทอร์เฟซที่ตอบสนอง

HMAC-MD5 คืออะไรเมื่อเปรียบเทียบกับ MD5 ธรรมดา?

HMAC-MD5 เป็นแฮชที่มีคีย์ซึ่งต้องการคีย์ลับ แม้ว่า MD5 ธรรมดาจะถูกบุกรุก แต่ HMAC-MD5 ยังคงปลอดภัยเมื่อคีย์ไม่เป็นที่ทราบ (แม้ว่าจะแนะนำให้ย้ายไปใช้ HMAC-SHA256 ก็ตาม)

เครื่องมือสร้าง HMAC

MD5 คืออะไร?

MD5 (Message-Digest Algorithm 5) เป็นฟังก์ชันแฮช 128 บิตที่ออกแบบโดย Ronald Rivest ในปี 1991 (RFC 1321) ซึ่งสร้างไดเจสต์ฐานสิบหก 32 ตัวอักษรคงที่จากอินพุตตามอำเภอใจ เคยใช้กันอย่างแพร่หลายสำหรับลายเซ็นดิจิทัล การตรวจสอบใบรับรองและการจัดเก็บรหัสผ่าน MD5 ถูกบุกรุกโดยการโจมตีด้วยการชนกันของ Wang และคณะในปี 2004 และมัลแวร์ Flame ใช้ประโยชน์จากการชนกันของ MD5 เพื่อปลอมใบรับรอง CA ที่น่าเชื่อถือในปี 2008

**สถานะความปลอดภัย**: NIST ปฏิเสธ MD5 อย่างเป็นทางการสำหรับลายเซ็นดิจิทัลใน SP 800-131A (2011) อย่างไรก็ตาม MD5 ยังคงมีประโยชน์สำหรับสถานการณ์ที่ไม่เกี่ยวกับความปลอดภัย: การตรวจสอบความสมบูรณ์ของไฟล์เพื่อป้องกันความเสียหายแบบสุ่ม การขจัดข้อมูลซ้ำและคีย์แคช คำถามสำคัญคือ ผู้โจมตีจะได้รับประโยชน์จากการสร้างการชนกันหรือไม่? หากไม่ ความเร็วของ MD5 เป็นข้อได้เปรียบ

**ห้ามใช้ MD5 สำหรับจัดเก็บรหัสผ่าน**: MD5 เร็วมาก (หลายพันล้านแฮช/วินาทีบน GPU) ซึ่งช่วยให้รหัสผ่านทั่วไปถูกทำลายทันทีด้วยการโจมตีแบบเดรัจฉาน การจัดเก็บรหัสผ่านต้องใช้ bcrypt, scrypt หรือ Argon2 — แฮชที่ช้าพร้อมปัจจัยต้นทุนที่ปรับได้ซึ่งทำให้การโจมตีแบบเดรัจฉานไม่สามารถปฏิบัติได้

**HMAC-MD5 ยังคงปลอดภัย**: แม้ว่า MD5 ธรรมดาจะถูกบุกรุก แต่ HMAC-MD5 (รหัสตรวจสอบความถูกต้องของข้อความตามแฮชที่มีคีย์) ยังคงปลอดภัยเมื่อคีย์ไม่เป็นที่ทราบ เนื่องจากโครงสร้าง HMAC ไม่ได้ขึ้นอยู่โดยตรงกับความต้านทานการชนกันของแฮชพื้นฐาน อย่างไรก็ตาม แนะนำให้ย้ายไปใช้ HMAC-SHA256

เครื่องมือนี้ใช้การติดตั้ง MD5 ด้วย JavaScript บริสุทธิ์ (Web Crypto API ไม่รองรับ MD5 อีกต่อไป) การคำนวณทั้งหมดทำในเครื่องในเบราว์เซอร์ของคุณ — ไฟล์ใช้การอ่านแบบเพิ่มทีละส่วนและไม่เคยถูกอัปโหลดไปยังเซิร์ฟเวอร์

术语表

ฟังก์ชันแฮช (Hash Function)
ฟังก์ชันทางคณิตศาสตร์ที่จับคู่อินพุตความยาวตามอำเภอใจกับเอาต์พุตความยาวคงที่ ฟังก์ชันแฮชที่ดีให้การทำงานทางเดียว ความต้านทานต่อการชนกันและเอฟเฟกต์ถล่ม
การโจมตีด้วยการชนกัน (Collision Attack)
การค้นหาอินพุตที่แตกต่างกันสองอย่างที่สร้างเอาต์พุตแฮชเดียวกัน การชนกันของ MD5 ถูกสาธิตโดย Wang และคณะในปี 2004 ซึ่งทำให้สามารถปลอมลายเซ็นดิจิทัลได้
การโจมตีพรีอิมเมจ (Preimage Attack)
การค้นหาอินพุตที่สร้างเอาต์พุตแฮชที่กำหนด ยากกว่าการชนกัน แต่งานวิจัยใหม่ในปี 2024 ได้ทำให้ความต้านทานพรีอิมเมจของ MD5 อ่อนแอลงอย่างมาก
ตารางสีรุ้ง (Rainbow Table)
ตารางค้นหาแฮช→ข้อความธรรมดาที่คำนวณล่วงหน้าเพื่อทำลายแฮชรหัสผ่านอ่อนแออย่างรวดเร็ว Salt เอาชนะตารางสีรุ้ง
HMAC (Hash-based Message Authentication Code)
รหัสตรวจสอบความถูกต้องของข้อความตามแฮชที่ใช้คีย์ลับสำหรับความสมบูรณ์/การตรวจสอบสิทธิ์ของข้อความ HMAC-MD5 และ HMAC-SHA256 เป็นรูปแบบทั่วไปเครื่องมือสร้าง HMAC
bcrypt
อัลกอริทึมแฮชรหัสผ่านที่ช้าพร้อม salt ในตัวและปัจจัยต้นทุนที่ปรับได้ ทำให้การโจมตีแบบเดรัจฉานมีต้นทุนสูงมาก
เช็คซัม (Checksum)
ค่าคงที่ขนาดเล็กที่ใช้ตรวจสอบความสมบูรณ์ของข้อมูล MD5, SHA-1, SHA-256 มักใช้เป็นเช็คซัมเพื่อตรวจจับความเสียหายระหว่างการส่ง
เอฟเฟกต์ถล่ม (Avalanche Effect)
การเปลี่ยนแปลงเล็กน้อยในอินพุต (แม้แต่ 1 บิต) ทำให้เกิดการเปลี่ยนแปลงอย่างมากและไม่สามารถคาดเดาได้ในเอาต์พุตแฮช MD5 ยังคงมีคุณสมบัติถล่มที่ดี ซึ่งมีส่วนต่อประโยชน์ที่ยังคงอยู่ในการตรวจสอบที่ไม่เกี่ยวกับความปลอดภัย
RFC 1321
มาตรฐานทางการของ MD5 เสนอต่อ IETF โดย Ronald Rivest ในปี 1992 อธิบายขั้นตอนอัลกอริทึมและเวกเตอร์ทดสอบ
แฮชแบบแบ่งส่วน (Chunked Hashing)
การประมวลผลไฟล์ขนาดใหญ่เป็นบล็อกแทนที่จะโหลดทั้งไฟล์ลงในหน่วยความจำ พร้อมการอัปเดตสถานะแฮชแบบเพิ่มทีละส่วน

การเปรียบเทียบอัลกอริทึมแฮชทั่วไป

อัลกอริทึมบิตเอาต์พุตความยาว Hexความปลอดภัยความเร็วการใช้งานที่แนะนำ
MD5128 บิต32 ตัวอักษร❌ ถูกบุกรุก (การชนกัน/พรีอิมเมจ)เร็วมากเช็คซัมไฟล์ ขจัดข้อมูลซ้ำ คีย์แคช
SHA-1160 บิต40 ตัวอักษร❌ การชนกัน (2017)เร็วGit ความเข้ากันได้กับระบบเก่า
SHA-256256 บิต64 ตัวอักษร✅ ปลอดภัยปานกลางลายเซ็นดิจิทัล ใบรับรอง บล็อกเชน
SHA-512512 บิต128 ตัวอักษร✅ ปลอดภัยเร็ว (64-บิต)สถานการณ์ความปลอดภัยสูง การหาคีย์
bcrypt-60 ตัวอักษร✅ เฉพาะสำหรับรหัสผ่านช้า (ปรับได้)จัดเก็บรหัสผ่าน

เส้นเวลาเหตุการณ์ความปลอดภัย MD5

ปีเหตุการณ์ผลกระทบ
1991Ron Rivest ออกแบบ MD5 (RFC 1321)ทดแทน MD4 และกลายเป็นอัลกอริทึมแฮชมาตรฐาน
1996พบข้อบกพร่องการชนกันเทียมครั้งแรกใน MD5ชุมชนวิชาการแสดงความกังวล
2004ทีมของ Wang Xiaoyun สาธิตการโจมตีด้วยการชนกัน MD5ความปลอดภัยลายเซ็นดิจิทัล MD5 แตกอย่างสมบูรณ์
2008มัลแวร์ Flame ปลอมใบรับรอง CA ผ่านการชนกัน MD5NIST ปฏิเสธ MD5 อย่างเป็นทางการสำหรับลายเซ็นดิจิทัล
2011NIST SP 800-131A ห้ามใช้ MD5 อย่างเป็นทางการสำหรับวัตถุประสงค์ด้านความปลอดภัยระบบรัฐบาลสหรัฐฯ เลิกใช้ MD5 ทีละขั้น
2024เผยแพร่บทความการโจมตีพรีอิมเมจใหม่เส้นป้องกันสุดท้ายของ MD5 (ความต้านทานพรีอิมเมจ) ถูกทำลาย

Code Examples

MD5/Hashing in JavaScript (Web Crypto supports SHA, MD5 needs library)

// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
  const msgBuffer = new TextEncoder().encode(message);
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
  return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);

// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5

MD5 Hashing in Python

import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash)  # b10a8db164e0754105b7a99be72e3fe5

# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
    md5 = hashlib.md5()
    with open(filepath, 'rb') as f:
        while chunk := f.read(chunk_size):
            md5.update(chunk)
    return md5.hexdigest()

# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)

MD5 Hashing in Java

import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;

public class MD5Example {
    public static String md5(String input) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (byte b : hash) sb.append(String.format("%02x", b));
        return sb.toString();
    }
    public static void main(String[] args) throws Exception {
        System.out.println(md5("Hello World"));
        // b10a8db164e0754105b7a99be72e3fe5
    }
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")

Authoritative References

เข้ารหัสและถอดรหัส AESแปลงเสียงเป็น Base64การเข้ารหัส Base32การเข้ารหัส Base58ถอดรหัส Base64 หลายรายการเข้ารหัส Base64 หลายรายการล้างอักขระ Base64แปลง Data URLถอดรหัส Base64เปรียบเทียบ Base64การเข้ารหัส Base64จัดรูปแบบ Base64ตัวแปลง Base64-Hexรวม Base64 หลายบรรทัดMIME Base64จัดการ Padding Base64แยก Base64 หลายบรรทัดสถิติความยาว Base64Base64 เป็นเสียงBase64 เป็นไฟล์Base64 เป็น HexBase64 เป็นรูปภาพBase64 เป็นข้อความBase64 เป็นวิดีโอURL Safe Base64ตรวจสอบรูปแบบ Base64ตัวแปลงรหัส Base85การแปลงเลขฐานสองรหัสซีซาร์ (Caesar Cipher)เข้ารหัสและถอดรหัส DESเครื่องมือคำนวณแฮชไฟล์แปลงไฟล์เป็น Base64เลขฐานสิบหก (Hex)สร้างและตรวจสอบ HMACเข้ารหัสและถอดรหัส HTMLแปลงรูปภาพเป็น Base64ทำให้โค้ด Java อ่านยาก (Obfuscate)ทำให้โค้ด JS อ่านยาก (Obfuscate)ถอดรหัส ตรวจสอบ และสร้าง JWTแฮช MD5ตัวแปลงรหัสมอร์สเครื่องมือสร้างคีย์ PBKDF2ทำให้โค้ด PHP อ่านยาก (Obfuscate)ทำให้โค้ด Python อ่านยาก (Obfuscate)เครื่องมือสร้าง SHA-1 แฮชแฮช SHA-256เครื่องมือสร้าง SHA-512 แฮชเปรียบเทียบข้อความอย่างปลอดภัยแปลงข้อความเป็น Base64ตัวแปลงรหัส Unicodeการเข้ารหัส URLวิดีโอเป็น Base64