ไม่มีใครมีตัวอย่างของอัลกอริทึม MD5สำหรับไมโครคอนโทรลเลอร์ (ควรเป็น 8 บิต) โครงการของเรากำลังจะใช้อุปกรณ์ชุด Microchip PIC18
ไม่มีใครมีตัวอย่างของอัลกอริทึม MD5สำหรับไมโครคอนโทรลเลอร์ (ควรเป็น 8 บิต) โครงการของเรากำลังจะใช้อุปกรณ์ชุด Microchip PIC18
คำตอบ:
หากคุณกำลังมองหาการใช้งาน C, Microchip TCP / IP stack มีการใช้งาน MD5 ในไฟล์ Hashes.c
นี่คือการใช้ MD5 จาก EtherNut (อิงจาก AVR)
ฉันจะยึดติดกับการใช้งานที่มีชื่อเสียงของ MD5 และอยู่ห่างจากห้องสมุดที่คุณพบจากผู้ขายบุคคลที่สาม RFC 1321ดั้งเดิมซึ่งอธิบาย MD5 มีตัวอย่างการนำ C มาใช้
คำเตือน: จุดอ่อนที่รู้จักสำหรับ MD5 คือการโจมตีแบบชนกันและไม่ใช่ การโจมตีแบบ preimageดังนั้นจึงเหมาะสำหรับแอปพลิเคชันการเข้ารหัสลับบางรายการ แต่ไม่ใช่แบบอื่น ๆ หากคุณไม่ทราบความแตกต่างที่คุณไม่ควรใช้มัน แต่อย่าทิ้งโดยสิ้นเชิง ดูhttp://www.vpnc.org/hash.html
คุณสามารถหาคำอธิบายที่ดีและ pseudocode สำหรับอัลกอริทึม MD5 wikipedia ได้ที่http://en.wikipedia.org/wiki/MD5
คุณอาจลองโพสต์คำถามนี้ในstackoverflowเนื่องจากมันเหมาะสำหรับคำถามการเขียนโปรแกรมมากขึ้น
จากหน้าวิกิพีเดียในMD5 :
... มันแสดงให้เห็นว่า MD5 ไม่ทนต่อการชนเช่นนี้ MD5 ไม่เหมาะสำหรับการใช้งานเช่นใบรับรอง SSL หรือลายเซ็นดิจิทัลที่ใช้คุณสมบัตินี้
และจากนักวิจัย SSL ในหน้าเดียวกัน:
เราหวังว่าการใช้ MD5 ในแอปพลิเคชั่นอื่น ๆ จะได้รับการพิจารณาใหม่เช่นกัน
ฉันเข้าใจว่าคุณอาจไม่ต้องการได้ยินสิ่งนี้ แต่คุณต้องการ MD5 จริง ๆ หรือไม่ ไม่ควรใช้เพื่อจุดประสงค์ในการเข้ารหัสเนื่องจากไม่ปลอดภัยเกินไป (และมีจำนวนมากของตารางเรนโบว์ที่พร้อมใช้งาน) หากคุณกำลังมองหาบางอย่างที่จะตรวจสอบความถูกต้องของข้อมูลให้ดูที่CRC (รหัสที่นี่ ) ซึ่งถูกกว่าการคำนวณ ถ้าคุณจะใช้มันเพื่อวัตถุประสงค์ในการเข้ารหัสลับ แต่แล้วฉันอาจแนะนำให้ย้ายไปอยู่SHA ? ปัญหาเดียวก็คือว่าอัลกอริทึมที่มีความปลอดภัยเข้ารหัสส่วนใหญ่ไม่ได้ทำงานได้ดีในไมโครคอนโทรลเลอร์ ฉันรู้ว่ามันอาจดูเหมือนว่า MD5 นั้น "ดีพอ" แต่วิธีการทางวิศวกรรมคือทำผิดพลาดโดยใช้ความระมัดระวัง