ความยาวสูงสุดของสตริงที่สามารถ hashed md5 คืออะไร หรือ: หากไม่มีข้อ จำกัด และหากเป็นเช่นนั้นความยาวสูงสุดของค่าเอาต์พุต md5 คือเท่าใด
ความยาวสูงสุดของสตริงที่สามารถ hashed md5 คืออะไร หรือ: หากไม่มีข้อ จำกัด และหากเป็นเช่นนั้นความยาวสูงสุดของค่าเอาต์พุต md5 คือเท่าใด
คำตอบ:
MD5 ประมวลผลข้อความที่มีความยาวตามอำเภอใจเป็นเอาท์พุทที่มีความยาวคงที่ 128 บิตโดยทั่วไปจะแสดงเป็นลำดับเลขฐานสิบหก 32 หลัก
128 bits
= 16 bytes
=32 hex digits
ผนวกความยาว
การเป็นตัวแทน 64 บิตของ b (ความยาวของข้อความก่อนที่จะเพิ่มบิตแพ็ดดิ้ง) จะถูกผนวกเข้ากับผลลัพธ์ของขั้นตอนก่อนหน้า ในเหตุการณ์ที่ไม่น่าเป็นไปได้ที่ b มากกว่า 2 ^ 64 ดังนั้นจึงใช้เฉพาะบิต 64 บิตที่มีลำดับต่ำ
MD5("how many characters exactly?");
คุณสามารถมีความยาวได้ แต่แน่นอนว่าอาจมีปัญหาเกี่ยวกับหน่วยความจำในคอมพิวเตอร์หากอินพุต String ยาวเกินไป ผลลัพธ์จะเป็น 32 อักขระเสมอ
block
ไบต์ของอินพุตพร้อมกัน
อัลกอริทึมได้รับการออกแบบมาเพื่อรองรับความยาวอินพุตโดยพลการ นั่นคือคุณสามารถคำนวณแฮชของไฟล์ขนาดใหญ่เช่น ISO ของ DVD ...
หากมีข้อ จำกัด สำหรับอินพุตอาจมาจากสภาพแวดล้อมที่ใช้ฟังก์ชันแฮช สมมติว่าคุณต้องการคำนวณไฟล์และสภาพแวดล้อมมีขีด จำกัด MAX_FILE
แต่สตริงเอาต์พุตจะเหมือนกันเสมอ: 32 hex chars (128 bits)!
แฮช MD5 128 บิตจะแสดงเป็นลำดับเลขฐานสิบหก 32 หลัก
คุณอาจต้องการใช้SHA-1แทนMD5เนื่องจาก MD5 นั้นถือว่าใช้งานไม่ได้
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับช่องโหว่ MD5 ในบทความวิกิพีเดียนี้
ไม่มีการ จำกัด อินพุตของ md5 ที่ฉันรู้ การนำไปใช้งานบางอย่างต้องการอินพุตทั้งหมดเพื่อโหลดลงในหน่วยความจำก่อนที่จะส่งผ่านไปยังฟังก์ชัน md5 (เช่นการนำไปใช้ทำหน้าที่ในบล็อกหน่วยความจำไม่ใช่สตรีม) แต่นี่ไม่ใช่ข้อ จำกัด ของอัลกอริธึมเอง ผลลัพธ์จะเป็น 128 บิตเสมอ โปรดทราบว่า md5 ไม่ใช่อัลกอริทึมการเข้ารหัส แต่เป็นแฮชการเข้ารหัส ซึ่งหมายความว่าคุณสามารถใช้เพื่อยืนยันความถูกต้องของข้อมูลจำนวนหนึ่ง แต่คุณไม่สามารถย้อนกลับการแฮช โปรดทราบด้วยว่า md5 นั้นถือว่าใช้งานไม่ได้ดังนั้นคุณไม่ควรใช้เพื่อความปลอดภัยใด ๆ ก็ตาม (มันยังใช้ได้ดีในการตรวจสอบความสมบูรณ์ของไฟล์ที่ดาวน์โหลดและอื่น ๆ )