มีวิธีการในตัวสำหรับการคำนวณแฮช SHA-1 หรือ MD5 ใน Windows 7 หรือไม่? [ซ้ำ]


37

คำถามนี้มีคำตอบอยู่ที่นี่แล้ว:

มีวิธีการในตัวสำหรับการคำนวณแฮช SHA-1 หรือ MD5 ใน Windows 7 หรือไม่?



ฉันจะสนับสนุนการรวม sha1 เป็นชื่อของคำถามอื่นและปิดคำถามนี้
Brian Webster

คำถามนี้ไม่ซ้ำกับsuperuser.com/questions/89191/... คำถามนั้นถามหาการรวมเชลล์เท่านั้นไม่มีบรรทัดคำสั่ง
wisbucky

การแก้ปัญหานี้ไม่ได้สร้างขึ้นในตรงกับ Windows 7 แต่ถ้าคุณมี Git Bash (MSYS / MinGW) ติดตั้งนั้นจะรวมถึงบรรทัดคำสั่ง md5sum
wisbucky

3
powershell get-filehash -algorithm sha1 <file_to_check>
Christian Long

คำตอบ:


31

ไม่มียูทิลิตี้ในตัวอย่างไรก็ตาม Microsoft มียูทิลิตีบรรทัดคำสั่งให้ดาวน์โหลดฟรี:

ความพร้อมใช้งานและคำอธิบายของยูทิลิตีการตรวจสอบความสมบูรณ์ของไฟล์ Checksum


6
สิ่งนี้ไม่เป็นความจริงอีกต่อไป PowerShell 4 เพิ่มคำสั่งGet-FileHash (เกี่ยวกับเวลาใช่มั้ย) ถึงแม้ว่าจะเป็นธรรม แต่ PowerShell 4 ได้รับการติดตั้งในระบบปฏิบัติการ Windows รุ่นใหม่ล่าสุดเท่านั้น (PS4 มีสิ่งดีๆอีกมากมายเช่นกัน)
jpmc26

หนึ่ง caveat สำคัญ: fcivล้มเหลวสำหรับชื่อไฟล์ที่มีอักขระ Unicode
wisbucky

18

ไม่มีเครื่องมือในตัว

ฉันใช้ส่วนขยายเปลือกHashCheck :

ข้อความแสดงแทน


นี่เป็นรายการโปรดของฉันเพราะมันเป็นส่วนขยายเคอร์เนล (ไม่เป็นไรหากพวกเขายังใช้คำศัพท์นั้นอยู่) รับใช้มานานหลายปี
David Cowden

มีวิธีรับแฮช SHA-256 ด้วยวิธีนี้ไหม?
สูงสุด

@DavidCowden: ประโยชน์ของการใช้คุณสมบัติเช่นส่วนขยายเคอร์เนลเมื่อเทียบกับแอปพลิเคชันที่ทำงานบน userspace เพียงอย่างเดียวคืออะไร นั่นไม่อาจทำให้ระบบปฏิบัติการไม่เสถียรหรือไม่
ไอแซค

@ อิสสาคฉันคิดถึงคำพูด ในแง่ของ Windows เก่ามันเป็นส่วนขยายของเชลล์ไม่ใช่ส่วนขยายเคอร์เนล ประโยชน์คือมันเพิ่ม ui ลงใน windows explorer เพื่อให้คุณสามารถดูเช็คซัมและแฮชได้ในหน้าต่างคุณสมบัติของไฟล์ มันค่อนข้างเรียบร้อย!
David Cowden

11

ไม่ใช่ในตัว แต่อย่างน้อยคุณไม่จำเป็นต้องดาวน์โหลดซอฟต์แวร์ใหม่เพื่อให้ทำงานได้ คุณสามารถสร้างสคริปต์ powershell เพื่อคำนวณ MD5sum ของไฟล์ สคริปต์จริงสามารถพบได้ที่นี่:

http://www.ahmadsoft.org/powershelljunkie/index.html

คัดลอกข้อความนั้นลงในไฟล์ที่เรียกว่า "ps-md5sum.ps1" และบันทึกไว้ที่ใดที่หนึ่ง เมื่อคุณต้องการคำนวณแฮชของไฟล์ให้เปิด PowerShell ในไดเรกทอรีของไฟล์ที่คุณต้องการตรวจสอบแล้วเรียกใช้:

[PS] C:\> ps-md5sum.ps1 file-of-choice.exe

และควรคืนค่าแฮชของไฟล์นั้น


สคริปต์ PS1 นี้จาก Joe Pruitt เลียนแบบพฤติกรรม UNIX md5: devcentral.f5.com/weblogs/Joe/archive/2009/05/18/…
Brian Reiter




4

นอกเหนือจากตัวเลือกที่ยอดเยี่ยมทั้งหมดที่โพสต์แล้วยังมีmd5deep / hashdeepซึ่งเป็นชุดการคำนวณ hash โอเพนซอร์สสำหรับ Windows (แต่ยังสามารถใช้ในระบบ * nix และ OS X) ที่รองรับ:

  • MD5
  • SHA-1
  • SHA-256
  • เสือ
  • น้ำวน

ข้อดีบางประการของ md5deep / hashdeep:

  • มันเป็นโอเพ่นซอร์สและข้ามแพลตฟอร์ม
  • มันทำงานจากบรรทัดคำสั่งและสามารถใช้สำหรับการเขียนสคริปต์
  • มันมีไบนารีที่ปรับให้เหมาะสมสำหรับทั้งระบบ 32- บิตและ 64- บิต
  • มันสนับสนุนขั้นตอนวิธีการที่ทันสมัยคร่ำเครียด (MD5 และ SHA-1 มีทั้งเสียที่จุดนี้ในการตรวจสอบความสมบูรณ์ของไฟล์และลายเซ็นดิจิตอลตั้งแต่การชนกันอยู่แล้วสามารถผลิตสำหรับ MD5 ได้อย่างง่ายดายญาติและ SHA-1 ชนจะเพิ่มมากขึ้นภายในขอบเขตของความเป็นไปได้ )
  • มันสามารถสร้าง checksums ซ้ำสำหรับไดเรกทอรีทั้งหมด
  • มันสามารถทดสอบไฟล์หรือไดเรกทอรีกับรายการ checksums ที่สร้างขึ้นก่อนหน้านี้เพื่อทำการตรวจสอบอย่างรวดเร็วของไดเรกทอรี (การระบุไฟล์หรือไฟล์ที่ไม่รู้จักซึ่งมีการเปลี่ยนแปลง)

หากต้องการใช้งานใน Windows คุณสามารถติดตั้งใน Cygwin หรือคุณสามารถรวมไดเรกทอรี md5deep ใน%PATH%ตัวแปรของคุณ แม้ว่าโดยส่วนตัวแล้วฉันชอบการตั้งค่าต่อไปนี้:

  1. แยกไฟล์ทั้งหมดบางแห่งเช่น

    %ProgramFiles%\md5deep

  2. สร้างชุดแบตช์ไฟล์ในไดเรกทอรี windows ของคุณเช่น

    %WinDir%\md5.bat
    %WinDir%\hash.bat
    %WinDir%\sha1.bat
    %WinDir%\sha256.bat
    %WinDir%\tiger.bat
    %WinDir%\whirlpool.bat

  3. รวมเส้นทางไปยังไบนารีที่เหมาะสมเช่น

    ในmd5.bat :
    @ECHO OFF
    "%ProgramW6432%\md5deep\md5deep64.exe" %*(ระบบ 64- บิต)
    "%ProgramFiles%\md5deep\md5deep.exe" %*( ระบบ32- บิต)

    ในhash.bat :
    @ECHO OFF
    "%ProgramW6432%\md5deep\hashdeep64.exe" %*(ระบบ 64- บิต)
    "%ProgramFiles%\md5deep\hashdeep.exe" %*( ระบบ32- บิต)
    ...

หรือถ้าคุณต้องการสลับระหว่างไบนารีแบบ 32 บิตและ 64 บิตสำหรับ WoW64 คุณสามารถใส่ไบนารีแบบ 32 บิตใน%ProgramFiles(x86)%และแบบ 64 บิต%ProgramW6432%แล้วเขียนไฟล์แบทช์ดังนี้:

@ECHO OFF
SET cmd=hashdeep
IF "%ProgramFiles%" EQU "%ProgramW6432%" SET cmd=%cmd%64
"%ProgramFiles%\md5deep\%cmd%.exe" %*
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.