Làm thế nào để kiểm tra SHA1, SHA256 và SHA512 phát ban trên Linux
Làm thế nào để bạn biết chắc chắn rằng tệp 4 GB bạn vừa tải xuống đã được chuyển mà không có lỗi? Một cách là sử dụng thuật toán băm tạo ra “dấu vân tay” hoặc “thông báo tiêu hóa” của tệp đã tải xuống. Giống như dấu vân tay của con người, chuỗi ký tự kết quả có nghĩa là duy nhất và chỉ tệp đó có thể tạo vân tay đó. Các trang web cung cấp tải xuống lớn, cho biết bản phân phối Linux như Fedora, cũng sẽ xuất bản danh sách các băm cho các tệp. Tất cả những gì bạn cần làm là kiểm tra giá trị băm của tệp mà bạn có với băm được xuất bản và nếu chúng giống nhau, thì tệp đã được tải xuống chính xác.
Trong quá khứ, thuật toán băm ưa thích là MD5 và mặc dù nó vẫn được sử dụng rộng rãi (ví dụ dự án Ubuntu vẫn cung cấp băm MD5), nó đang dần dần được thay thế bởi họ băm SHA. Vấn đề với MD5 là có thể tạo nhiều tệp với cùng một dấu vân tay. Trong một trường hợp nổi tiếng trong số các nhà mật mã, một nhà nghiên cứu bảo mật cho biết ông biết ai sẽ thắng cuộc bầu cử tổng thống và ông đã tạo ra một tập tin với kết quả trong đó và ban hành băm MD5. Ông sẽ phát hành tập tin của mình sau cuộc bầu cử và chứng minh dự đoán của mình là đúng. Trong thực tế, những gì ông đã làm được tạo ra một số tập tin với tất cả những người chiến thắng có thể và thao tác các tập tin trong một cách mà tất cả họ đều có cùng một dấu vân tay MD5!
Có một số thuật toán băm bảo mật khác nhau (SHA) bao gồm SHA1, SHA256 và SHA512. Về mặt kỹ thuật SHA256 và SHA512 đều sử dụng cùng một thuật toán, nhưng xử lý dữ liệu trong các khối có kích thước khác nhau - SHA256 sử dụng khối 32 bit và khối 64 bit SHA512.
SHA1 tương tự như MD5 và MD5, có một số lo ngại về tính duy nhất của băm kết quả và nó không còn được chấp thuận cho nhiều sử dụng mã hóa kể từ năm 2010. Tuy nhiên, nếu bạn tìm thấy một trang web xuất bản các băm SHA1, bạn có thể kiểm tra chúng như thế này :
sha1sum Fedora-19-i386-netinst.iso
Đầu ra sẽ trông như thế này:
b24e9b7bd49168839fd056bbd0ac8f2aec6b68b9 Fedora-19-i386-netinst.iso
Hàm băm SHA256 được tạo theo cùng một cách:
sha256 Fedora-19-i386-netinst.iso
Và đầu ra tương tự, ngoại trừ lưu ý rằng chuỗi dấu vân tay dài hơn nhiều:
2b16f5826a810bb8c17aa2c2e0f70c4895ee4b89f7d59bb8bf39b07600d6357c Fedora-19-i386-netinst.iso
Và tương tự như vậy đối với SHA512:
sha512sum Fedora-19-i386-netinst.iso
Dấu vân tay kết quả thậm chí còn dài hơn:
9eb35d03cc289aa5d5a29cfc9080c3152a3da1b91a2b12d352b16a3d817a7479b9d1be3c7ecf011abf6a01f3122c66892f96a2c213756df786117412d8df99b3 Fedora-19-i386-netinst.iso
Thay vì chỉ xuất bản chuỗi dấu vân tay, một số trang web cung cấp tệp kiểm tra chứa tất cả thông tin băm trong một dạng máy có thể đọc được mà các lệnh sha
khác nhau có thể sử dụng để tự động xác minh tệp. Một tệp kiểm tra cho phiên bản Intel 32 bit cài đặt của Fedora 19 có thể trông giống như sau:
2b16f5826a810bb8c17aa2c2e0f70c4895ee4b89f7d59bb8bf39b07600d6357c * Fedora-19-i386-netinst.iso
Để kiểm tra điều này, hãy sử dụng tham số “ -c
” như sau:
sha256sum -c Fedora-19-i386-CHECKSUM
Trường hợp Fedora-19-i386-CHECKSUM
là tên của tệp chứa thông tin vân tay như được hiển thị ở trên.
Nếu dấu vân tay khớp nhau, thì đầu ra sẽ trông như sau:
Fedora-19-i386-netinst.iso: OK
Nếu có lỗi trong tệp đã tải xuống, đầu ra sẽ là:
Fedora-19-i386-netinst.iso: FAILED sha256sum: CẢNH BÁO: 1 lần kiểm tra tính toán KHÔNG khớp
Thử cái này
Bản phân phối Linux của bạn cũng có thể chứa các sha224
và sha384
. Hai thuật toán băm này là các phiên bản cắt ngắn của SHA256 và SHA512. Chúng có thể được sử dụng chính xác giống như lệnh sha256
và sha512
. Hãy thử sản xuất băm sử dụng chúng và nhận thấy sự khác biệt trong đầu ra.