ฉันใช้ Windows 7 และมีทั้ง Cygwin และเครื่องมือบรรทัดคำสั่ง Git อิง ming
เมื่อฉันออกคำสั่ง:
c:\>echo -n hello | e:\cygwin\bin\sha512sum
จาก Windows cmd มันสร้าง
91fe211053c6377ddfd218a061f96de1ca304b10d966a4c3572d9af22bbe86dc471653d0f9b14f923762d0bf83a0abfe285b855e1ee06b0d4ab4a60a8d8801e3 *-
ซึ่งฉันเชื่อว่าเป็น ไม่ถูกต้อง .
อย่างไรก็ตามเมื่อฉันออกคำสั่ง
$ echo -n hello | /e/cygwin/bin/sha512sum
จากบรรทัดคำสั่ง git มันจะสร้าง
9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043 *-
ซึ่งฉันเชื่อว่าเป็นเช็คซัมที่ถูกต้อง ฉันสมมติว่าอินพุตเดียวกันถูกส่งไปยังไบนารีที่แน่นอนได้ แต่มันไม่ถูกต้องกับพฤติกรรมที่ฉันเห็น Windows CMD ทำการเข้ารหัสแบบตลกบางอย่างที่ส่งอินพุตที่แตกต่างกันไปยังไบนารีของ cygwin sha512 หรือไม่
แก้ไข สำหรับผู้ที่สนใจในการรับเช็คซัมที่ถูกต้องจากพรอมต์คำสั่ง Windows cmd มาตรฐานเคล็ดลับคือไม่ใช้คำสั่ง window echo การใช้คำสั่ง echo ของ cygwin จะสร้างการตรวจสอบที่ถูกต้อง
เช่น.,
e:\cygwin\bin\echo -n hello | e:\cygwin\bin\sha512sum