เหตุใดแฮชของบรรทัดคำสั่งของฉันจึงแตกต่างจากผลลัพธ์แฮช MD5 ออนไลน์


21

บนPowerPC Mac OS X v10.5 (Leopard) ถ้าฉันทำ:

echo "hello" | md5
บนบรรทัดคำสั่งผลลัพธ์คือ:

b1946ac92492d2347c6235b4d2611184

แต่ถ้าฉันสวัสดีเข้าสู่หนึ่งในเว็บไซต์แฮช MD5 ออนไลน์อย่างhttp://md5online.net/ฉันจะได้รับ:

5d41402abc4b2a76b9719d911017c592

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


ทำงานได้ดีสำหรับฉันบน Windows ด้วย Total Commander ที่สร้างการตรวจสอบ MD5 เหมือนกับเวอร์ชั่นออนไลน์
Snark

ขอบคุณ Snark Rudedog แก้ไขปัญหาเมื่อใช้ md5 บนบรรทัดคำสั่งอย่างน้อยสำหรับระบบ POSIX ให้ +1 แก่เขาถ้าคุณทำได้ ฉันใหม่เกินไป
pellea72

คำตอบ:


40

เมื่อคุณ echo จากบรรทัดคำสั่ง md5 กำลังคำนวณผลรวมของ 6 ตัวอักษร - h, e, l, l, o บวก newline ข้อความที่คุณป้อนในเว็บไซต์ไม่มีการขึ้นบรรทัดใหม่

ลองทำดู

echo -n hello | md5

และมันจะให้สิ่งที่คุณคาดหวัง -n บอกว่า echo ไม่ให้ขึ้นบรรทัดใหม่


อุ่ย ฉันไม่ได้สังเกตแท็ก '-n' คุณพูดถูก Rudedog ที่ได้ผล ขอบคุณ
pellea72

3

คุณยังสามารถใช้ printf แทน echo ซึ่งจะระงับอักขระบรรทัดใหม่โดยอัตโนมัติ:

printf hello | md5

หรือแม้กระทั่ง:

printf "hello" | md5

2

b1946ac92492d2347c6235b4d2611184 ist the md5 ของเพียงสตริง

hello

5d41402abc4b2a76b9719d911017c592 ist the md5 ของ

hello

CR + LF

CR + LF เป็นบรรทัดใหม่ของ Windows


1

ในการเพิ่ม 5 เซนต์ของฉันและขยายคำตอบ: ใน Linux ไม่ใช่ md5 คือ md5sum ดังนั้นคุณควรทำดังนี้:

echo -n hello | md5sum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.