Băm MD5, SHA-1 và SHA-256 là gì và làm cách nào để kiểm tra chúng?
Đôi khi bạn sẽ thấy các băm MD5, SHA-1 hoặc SHA-256 được hiển thị cùng với các bản tải xuống trong chuyến du lịch internet của bạn, nhưng không thực sự biết chúng là gì. Các chuỗi văn bản dường như ngẫu nhiên này cho phép bạn xác minh các tệp bạn tải xuống không bị hỏng hoặc giả mạo. Bạn có thể làm điều này với các lệnh được tích hợp trong Windows, macOS và Linux.
Cách băm hoạt động và cách chúng được sử dụng để xác minh dữ liệu
Băm là sản phẩm của các thuật toán mã hóa được thiết kế để tạo ra một chuỗi các ký tự. Thông thường các chuỗi này có độ dài cố định, bất kể kích thước của dữ liệu đầu vào. Hãy nhìn vào biểu đồ trên và bạn sẽ thấy rằng cả hai Fox Fox và cáo Con cáo đỏ nhảy qua con chó màu xanh lá cây mang lại sản lượng dài như nhau.
Bây giờ so sánh ví dụ thứ hai trong biểu đồ với thứ ba, thứ tư và thứ năm. Bạn sẽ thấy rằng, mặc dù có một thay đổi rất nhỏ trong dữ liệu đầu vào, các giá trị băm kết quả rất khác nhau. Ngay cả khi ai đó sửa đổi một phần rất nhỏ của dữ liệu đầu vào, hàm băm sẽ thay đổi đáng kể.
MD5, SHA-1 và SHA-256 là tất cả các hàm băm khác nhau. Những người tạo phần mềm thường tải xuống một tệp - như tệp Linux .iso hoặc thậm chí là tệp .exe của Windows - và chạy nó thông qua hàm băm. Sau đó, họ cung cấp một danh sách chính thức của băm trên trang web của họ.
Bằng cách đó, bạn có thể tải xuống tệp và sau đó chạy hàm băm để xác nhận rằng bạn có tệp gốc, tệp gốc và nó đã không bị hỏng trong quá trình tải xuống. Như chúng ta đã thấy ở trên, ngay cả một thay đổi nhỏ đối với tệp sẽ thay đổi đáng kể hàm băm.
Chúng cũng có thể hữu ích nếu bạn có một tệp bạn nhận được từ một nguồn không chính thức và bạn muốn xác nhận rằng đó là hợp pháp. Giả sử bạn có tệp Linux .ISO bạn nhận được từ một nơi nào đó và bạn muốn xác nhận rằng nó đã không bị giả mạo. Bạn có thể tra cứu hàm băm của tệp ISO cụ thể đó trực tuyến trên trang web của bản phân phối Linux. Sau đó, bạn có thể chạy nó thông qua chức năng băm trên máy tính của mình và xác nhận rằng nó phù hợp với giá trị băm mà bạn mong đợi nó có. Điều này xác nhận tệp bạn có là cùng một tệp được cung cấp để tải xuống trên trang web của bản phân phối Linux, mà không có bất kỳ sửa đổi nào.
Lưu ý rằng các va chạm của người dùng đã được tìm thấy với các chức năng MD5 và SHA-1. Đây là nhiều tệp khác nhau - ví dụ: tệp an toàn và tệp độc hại - dẫn đến cùng một hàm băm MD5 hoặc SHA-1. Đó là lý do tại sao bạn nên thích SHA-256 khi có thể.
Cách so sánh các hàm Hash trên bất kỳ hệ điều hành nào
Với ý nghĩ đó, chúng ta hãy xem cách kiểm tra hàm băm của tệp bạn đã tải xuống và so sánh nó với tệp bạn đã cung cấp. Dưới đây là các phương pháp cho Windows, macOS và Linux. Các giá trị băm sẽ luôn giống nhau nếu bạn đang sử dụng cùng chức năng băm trên cùng một tệp. Không quan trọng bạn sử dụng hệ điều hành nào.
các cửa sổ
Quá trình này có thể thực hiện mà không cần bất kỳ phần mềm của bên thứ ba nào trên Windows nhờ PowerShell.
Để bắt đầu, hãy mở cửa sổ PowerShell bằng cách khởi chạy phím tắt Windows Windows PowerShell trong menu Bắt đầu của bạn.
Chạy lệnh sau, thay thế C trên C: \ path \ thành \ file.iso, bằng đường dẫn đến bất kỳ tệp nào bạn muốn xem hàm băm của:
Get-FileHash C: \ path \ to \ file.iso
Sẽ mất một chút thời gian để tạo ra hàm băm của tệp, tùy thuộc vào kích thước của tệp, thuật toán bạn đang sử dụng và tốc độ của ổ đĩa tệp được bật.
Theo mặc định, lệnh sẽ hiển thị hàm băm SHA-256 cho một tệp. Tuy nhiên, bạn có thể chỉ định thuật toán băm bạn muốn sử dụng nếu bạn cần MD5, SHA-1 hoặc loại băm khác.
Chạy một trong các lệnh sau để chỉ định thuật toán băm khác:
Get-FileHash C: \ path \ to \ file.iso-Thuật toán MD5
Get-FileHash C: \ path \ to \ file.iso-Thuật toán SHA1
Get-FileHash C: \ path \ to \ file.iso-Thuật toán SHA256
Get-FileHash C: \ path \ to \ file.iso-Thuật toán SHA384
Get-FileHash C: \ path \ to \ file.iso-Thuật toán SHA512
Get-FileHash C: \ path \ to \ file.iso-Thuật toán MACTripleDES
Get-FileHash C: \ path \ to \ file.iso-Thuật toán RIPEMD160
So sánh kết quả của hàm băm với kết quả mà bạn mong đợi để xem. Nếu có cùng giá trị, tệp đã không bị hỏng, bị giả mạo hoặc bị thay đổi so với ban đầu.
hệ điều hành Mac
macOS bao gồm các lệnh để xem các loại băm khác nhau. Để truy cập chúng, khởi chạy một cửa sổ Terminal. Bạn sẽ tìm thấy nó tại Finder> Ứng dụng> Tiện ích> Terminal.
Các md5
lệnh hiển thị hàm băm MD5 của tệp:
md5 / đường dẫn / đến / tập tin
Các shasum
lệnh hiển thị hàm băm SHA-1 của một tệp theo mặc định. Điều đó có nghĩa là các lệnh sau giống hệt nhau:
shasum / đường dẫn / đến / tập tin
shasum -a 1 / đường dẫn / đến / tập tin
Để hiển thị hàm băm SHA-256 của tệp, hãy chạy lệnh sau:
shasum -a 256 / đường dẫn / đến / tập tin
Linux
Trên Linux, truy cập Terminal và chạy một trong các lệnh sau để xem hàm băm cho tệp, tùy thuộc vào loại băm bạn muốn xem:
md5sum / đường dẫn / đến / tập tin
sha1sum / đường dẫn / đến / tập tin
sha256sum / đường dẫn / đến / tập tin
Một số Băm được ký mã hóa để bảo mật hơn nữa
Mặc dù băm có thể giúp bạn xác nhận một tệp không bị giả mạo, nhưng vẫn có một con đường tấn công ở đây. Kẻ tấn công có thể giành quyền kiểm soát trang web của nhà phân phối Linux và sửa đổi các băm xuất hiện trên đó hoặc kẻ tấn công có thể thực hiện một cuộc tấn công trung gian và sửa đổi trang web trong quá trình nếu bạn truy cập trang web qua HTTP thay vì HTTPS được mã hóa.
Đó là lý do tại sao các bản phân phối Linux hiện đại thường cung cấp nhiều hơn các giá trị băm được liệt kê trên các trang web. Họ mật mã ký những băm này để giúp bảo vệ chống lại những kẻ tấn công có thể cố gắng sửa đổi băm. Bạn sẽ muốn xác minh chữ ký mã hóa để đảm bảo tệp băm thực sự được ký bởi bản phân phối Linux nếu bạn muốn chắc chắn rằng băm và tệp không bị giả mạo.
Xác minh chữ ký điện tử là một quá trình liên quan nhiều hơn. Đọc hướng dẫn của chúng tôi để xác minh ISO ISO không bị giả mạo để có hướng dẫn đầy đủ.
Tín dụng hình ảnh: Jorge Stolfi / Wikimedia