Cách tốt nhất để tính tổng tổng cho một tệp có trong máy của tôi là gì?


81

Tôi đang sử dụng máy Windows và tôi muốn chạy tổng kiểm tra trên bản phân phối MySQL mà tôi vừa nhận được. Có vẻ như có các sản phẩm để tải xuống, một công cụ không được hỗ trợ của Microsoft và có thể là các tùy chọn khác. Tôi tự hỏi liệu có sự đồng thuận cho công cụ tốt nhất để sử dụng. Đây có thể là một câu hỏi thực sự dễ dàng, tôi chưa bao giờ chạy một thói quen kiểm tra trước đây.


1
Cũng được thảo luận trên SuperUser: superuser.com/questions/245775/…

Câu trả lời:


16

Bất kỳ MD5 nào cũng sẽ tạo ra một tổng kiểm tra tốt để xác minh tệp. Bất kỳ tệp nào được liệt kê ở cuối trang này sẽ hoạt động tốt. http://en.wikipedia.org/wiki/Md5sum


6
Câu trả lời này không còn là lời khuyên tốt nữa. MD5 ngày nay rất không an toàn . Sử dụng MD5 để xác thực các tệp đã tải xuống không an toàn.
antiduh

22
@antiduh Nhìn thấy khi bạn lấy băm từ cùng một nơi mà bạn tải xuống, lập luận của bạn là tranh luận. Bạn bị giới hạn bởi hàm băm do trang web cung cấp.
JJ

7
Hãy lưu ý rằng người dùng chỉ muốn xác minh rằng tệp đã tải xuống không bị hỏng. Nếu bạn xem tại https://en.wikipedia.org/wiki/MD5#Security, bạn sẽ bắt gặp câu quan trọng này trong đoạn mở đầu: "Mặc dù ban đầu MD5 được thiết kế để sử dụng như một hàm băm mật mã, nó có bị phát hiện có nhiều lỗ hổng bảo mật. Nó vẫn có thể được sử dụng như một tổng kiểm tra để xác minh tính toàn vẹn của dữ liệu, nhưng chỉ chống lại tham nhũng không chủ ý. "
Kosta Tenedios

2
@JJ Rất nhiều trang web chính thức yêu cầu bạn tải xuống tệp nhị phân thực tế từ một miền khác, vì vậy đối số là hợp lệ. Bạn có thể tải xuống VLC đã sửa đổi từ một máy nhân bản độc hại thông qua trang web chính thức, trang này sẽ được phát hiện bằng tổng kiểm tra.
Chào

2
@antiduh Tôi hỏi không phải vì tôi quá lười tìm kiếm, mà vì RTFM không bao giờ là 'câu trả lời' thích hợp trên Stackoverflow (đó là câu trả lời của bạn ngụ ý).
java-boldct301

234

Các Certutil là một tiện ích của Windows được cài đặt sẵn, có thể được sử dụng để tạo checksums băm:

CertUtil -hashfile pathToFileToCheck [HashAlgorithm]

HashAlgorithm lựa chọn: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

Vì vậy, ví dụ: sau đây tạo một tổng kiểm tra MD5 cho tệp C:\TEMP\MyDataFile.img:

CertUtil -hashfile C:\TEMP\MyDataFile.img MD5

Để có đầu ra tương tự như hệ thống * Nix, bạn có thể thêm một số phép thuật PS:

$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""

1
Đây là một lựa chọn dễ dàng hơn nhiều so với FCIV, vì nó đã được cài đặt sẵn.
CJBS

1
Lưu ý: tính năng này không được cài đặt sẵn trên Win XP, nhưng với điều kiện hệ điều hành đó hiện đã lỗi thời, điều đó không thành vấn đề.
CJBS

2
@Laisvis - với lời giải thích của bạn, tôi đã đi từ 0 đến hết trong khoảng 2 phút. Tôi đến trang này để tìm cách thực hiện. Câu trả lời của bạn rất đơn giản và hoàn hảo.
Iceberg

2
+1 để đề xuất phiên bản cài đặt sẵn. Còn cách nào tốt hơn để đảm bảo phần mềm an toàn để kiểm tra bảo mật và tiết kiệm thêm các bước tìm kiếm, tải xuống, cài đặt và xác thực.
Zack Jannsen

1
Ai đó có thể vui lòng cho tôi biết cách kiểm tra tổng kiểm tra tệp để sử dụng Băm tạo certUtil không? dòng lệnh. Đó sẽ là chỉ sử dụng cùng một dòng lệnh để tạo Hash trên tệp (sau khi tệp được nhận trên máy đích)?
rvpals

25

Cá nhân tôi sử dụng Cygwin , công cụ này đặt toàn bộ chuỗi tiện ích Linux trong tầm tay của tôi --- có md5sumvà tất cả các công cụ đào tiền mã hóa được hỗ trợ bởi OpenSSL . Ngoài ra, bạn cũng có thể sử dụng bản phân phối Windows của OpenSSL (phiên bản "nhẹ" chỉ là trình cài đặt 1 MB).


3
Đối với việc chỉ kiểm tra một tổng kiểm Cygwin có vẻ hơi nặng. Đặc biệt kể từ khi có 5KB thực thi để kiểm tra MD5
Nick Berardi

3
Nó có thể nặng nhưng đó là một câu trả lời hợp lệ, đặc biệt khi xem xét một chương trình Unixy (MySQL) có liên quan.
Adam Hawes

3
Đối với những người coi Cygwin là một công cụ thiết yếu, đó là một câu trả lời hoàn hảo.
Zenexer

7
Điều đáng chú ý là md5sum cũng đi kèm với git bash (mingw)
Old Badman Grey


6

Các tab kiểm tra: http://code.kliu.org/hashcheck/

Điều này đã làm việc tuyệt vời cho tôi trên windows trong một thời gian. Nó cho phép dễ dàng sao chép và dán các tổng kiểm tra. Nó có hộp để nhập / dán tổng séc từ các trang web và hiển thị các kết quả trùng khớp hoặc không trùng khớp khá tốt.


2
Tiện ích nhỏ tiện dụng này là khá thấp ở đây. Đầu tiên, tôi không có quan hệ gì với (các) tác giả --- Tôi chỉ nghĩ rằng đó là một tiện ích tuyệt vời! Nó cho phép bạn tạo tệp băm mà bạn chọn từ menu ngữ cảnh trong Windows Explorer cho một tệp hoặc một nhóm tệp. Sau đó, bạn có thể nhấp đúp vào tệp băm đó để tự động chạy xác minh băm cho các tệp đó. Tôi sử dụng điều này thường xuyên để tạo mã băm cho các tệp lớn mà tôi muốn sao chép, sau đó sao chép tệp băm với nó và tại đích, nhấp đúp để xác minh chúng còn nguyên vẹn.
Michael Sorens

1
Giải pháp tuyệt vời, nhưng liên kết đã lỗi thời. Nơi an toàn nhất để tải phần mềm này bây giờ là github.com/gurnec/HashCheck
asachet

5

Trên MySQL.com, MD5 được liệt kê cùng với mỗi tệp mà bạn có thể tải xuống. Ví dụ: MySQL "Windows Essentials" 5.1 là 528c89c37b3a6f0bd34480000a56c372 .

Bạn có thể tải xuống md5 (md5.exe), một công cụ dòng lệnh sẽ tính toán MD5 của bất kỳ tệp nào bạn có cục bộ. MD5 cũng giống như bất kỳ hàm băm mật mã nào khác , có nghĩa là một mảng byte nhất định sẽ luôn tạo ra cùng một hàm băm. Điều đó có nghĩa là nếu tệp zip MySQL đã tải xuống của bạn (hoặc bất kỳ thứ gì) có cùng MD5 khi họ đăng trên trang web của họ, bạn có cùng một tệp.


3

Khi tôi làm việc với Windows, tôi thấy công cụ của bên thứ 3 HashTab rất tiện dụng. Nó hiển thị tổng số kiểm tra MD5, SHA-1 trong một trong các tab thuộc tính tệp. http://implbits.com/products/hashtab/


3

7-Zip có thể được sử dụng để tạo hàm băm cho tệp, thư mục tệp và cây thư mục tệp. 7-Zip có kích thước nhỏ và là một tiện ích nén rất hữu ích. http://7-zip.org/


Mặc dù đúng là 7-zip cung cấp hàm băm cho tất cả các mục được liệt kê ở trên, nhưng nó thiếu cách để sao chép-dán trực tiếp kết quả của nó. CertUtil, vì nó là một chương trình CMD, cung cấp chức năng sao chép-dán.
Jonathin

Cũng có thể sử dụng 7z.exe thông qua CMD, ví dụ: 7z.exe h -scrcSHA256 -- /path/to/your/file.txttạo ra một băm sha256.
Elpy


2

Chỉ để thêm một tùy chọn khác cho người dùng Windows, bạn Get-FileHashcó thể sử dụng lệnh ghép ngắn PowerShell ( https://technet.microsoft.com/en-us/library/dn520872.aspx ).

Ví dụ sử dụng: Get-FileHash MyImage.iso -Algorithm MD5

Nếu tất cả những gì bạn đang theo đuổi chỉ là hàm băm thô thì: (Get-FileHash MyImage.iso -Algorithm MD5).Hash


2

Cách tính md5 của tất cả các tệp trong thư mục hiện tại trong windows 7

for %i in (*) DO CertUtil -hashfile %i MD5



0

Lưu ý rằng các giải pháp trên sẽ không cho bạn biết liệu cài đặt của bạn có chính xác hay không mà chỉ khi install.exe của bạn đúng (bạn có thể tin tưởng nó để tạo ra một cài đặt chính xác.)

Bạn sẽ cần tổng MD5 cho mỗi tệp / thư mục để kiểm tra xem mã đã cài đặt có bị nhầm lẫn sau khi cài đặt hoàn tất hay không.

WinMerg rất hữu ích để so sánh hai bản cài đặt (có lẽ trên hai máy khác nhau) để xem liệu một bản đã bị thay đổi hoặc tại sao một bản bị hỏng.


0

chắc chắn rằng certutil là cách tiếp cận tốt nhất nhưng có cơ hội để truy cập máy windows xp / 2003 mà không có lệnh certutil.Có thể sử dụng lệnh makecab có thuật toán băm riêng - ở đây là fileinf.bat sẽ xuất ra một số thông tin về tệp bao gồm tổng kiểm tra.


0

Hashing là một ứng dụng độc lập thực hiện họ MD5, SHA-1 và SHA-2. Được xây dựng dựa trên OpenSSL.




0

Trong HPUX (hp UNIX)

Vui lòng cài đặt gói md5sum trên máy UNIX của bạn, chẳng hạn, nếu có một tệp được gọi là a.txt

shell > md5sum a.txt

-4

Chỉ cần sử dụng win32 Checksum api. MD5 là bản gốc trong Win32.


2
Có một ví dụ về API Win32 đủ nhỏ cho câu trả lời SO và phù hợp với người hỏi không?
Sqeaky
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.