Lệnh hash trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh hash của Linux, được sử dụng để tính toán giá trị hash mật mã của các tệp và thư mục. Lệnh này là một công cụ mạnh mẽ để xác minh tính toàn vẹn của dữ liệu và thực hiện các tác vụ liên quan đến bảo mật khác. Chúng ta sẽ bắt đầu bằng cách giới thiệu lệnh hash, sau đó tìm hiểu cách tính toán hash của các tệp và thư mục, và cuối cùng, cách sử dụng lệnh hash để xác minh tính toàn vẹn của tệp. Lệnh hash là một phần của gói GNU coreutils, một tập hợp các công cụ dòng lệnh thiết yếu cho hệ điều hành Linux.

Giới thiệu về Lệnh hash của Linux

Trong bước này, chúng ta sẽ tìm hiểu về lệnh hash trong Linux, được sử dụng để tính toán các giá trị hash mật mã của các tệp và thư mục. Lệnh hash là một công cụ mạnh mẽ để xác minh tính toàn vẹn của dữ liệu, cũng như cho các tác vụ liên quan đến bảo mật khác.

Để bắt đầu, trước tiên hãy kiểm tra phiên bản của lệnh hash được cài đặt trên hệ thống của chúng ta:

hash --version

Ví dụ đầu ra:

GNU coreutils 8.32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Torbjörn Granlund and Richard M. Stallman.

Lệnh hash là một phần của gói GNU coreutils, đây là một tập hợp các công cụ dòng lệnh cần thiết cho hệ điều hành Linux.

Tiếp theo, hãy khám phá một số cách sử dụng cơ bản của lệnh hash:

hash -h

Điều này sẽ hiển thị thông tin trợ giúp cho lệnh hash, hiển thị các tùy chọn và ví dụ sử dụng khác nhau.

Một số tùy chọn được sử dụng phổ biến nhất cho lệnh hash bao gồm:

  • -a hoặc --algorithm: Chỉ định thuật toán băm để sử dụng (ví dụ: md5, sha1, sha256, sha512)
  • -c hoặc --check: Xác minh các giá trị hash của tệp so với tệp checksum được cung cấp
  • -t hoặc --type: Chỉ định loại hash (ví dụ: md5, sha1, sha256, sha512)

Trong các bước sau, chúng ta sẽ đi sâu hơn vào cách sử dụng lệnh hash để tính toán hash và xác minh tính toàn vẹn của tệp.

Tính toán Hash của Tệp và Thư mục

Trong bước này, chúng ta sẽ tìm hiểu cách sử dụng lệnh hash để tính toán các giá trị hash mật mã cho các tệp và thư mục.

Đầu tiên, hãy tạo một tệp mẫu mà chúng ta có thể sử dụng để băm:

echo "This is a sample file." > sample.txt

Bây giờ, chúng ta có thể tính toán giá trị hash cho tệp này bằng lệnh hash:

hash -t sha256 sample.txt

Ví dụ đầu ra:

sha256 (sample.txt) = 5d10c2c4d3dc5711938f617416b2b523c4d4f3ecd85a13d7c0c6f88a45b6ebc

Lệnh hash đã tính toán giá trị hash SHA-256 cho tệp sample.txt.

Bạn cũng có thể tính toán hash cho các thư mục. Hãy tạo một thư mục mẫu và một số tệp bên trong nó:

mkdir sample_dir
touch sample_dir/file1.txt sample_dir/file2.txt sample_dir/file3.txt

Bây giờ, chúng ta có thể tính toán giá trị hash cho toàn bộ thư mục:

hash -t sha256 sample_dir/

Ví dụ đầu ra:

sha256 (sample_dir/) = 6d5f807e23db210bc254a28be2abb02f48cf35f4c8d486276e2d56cbf0d3cd36

Lệnh hash đã tính toán giá trị hash SHA-256 cho thư mục sample_dir, bao gồm tất cả các tệp bên trong nó.

Bạn có thể sử dụng các thuật toán hash khác nhau bằng cách chỉ định tùy chọn -a hoặc --algorithm, chẳng hạn như md5, sha1, sha256 hoặc sha512.

hash -a md5 sample.txt
hash -a sha1 sample.txt
hash -a sha512 sample.txt

Các giá trị hash được tính toán có thể được sử dụng để xác minh tính toàn vẹn của các tệp, mà chúng ta sẽ khám phá trong bước tiếp theo.

Xác minh Tính toàn vẹn của Tệp bằng hash

Trong bước cuối cùng này, chúng ta sẽ tìm hiểu cách sử dụng lệnh hash để xác minh tính toàn vẹn của các tệp bằng cách so sánh các giá trị hash đã tính toán của chúng với các giá trị hash đã biết, đáng tin cậy.

Hãy bắt đầu bằng cách tạo một tệp checksum chứa các giá trị hash dự kiến cho các tệp mẫu của chúng ta:

cat << EOF > sample_checksums.txt
5d10c2c4d3dc5711938f617416b2b523c4d4f3ecd85a13d7c0c6f88a45b6ebc  sample.txt
6d5f807e23db210bc254a28be2abb02f48cf35f4c8d486276e2d56cbf0d3cd36  sample_dir/
EOF

Tệp này chứa các giá trị hash SHA-256 cho tệp sample.txt và thư mục sample_dir.

Bây giờ, chúng ta có thể sử dụng lệnh hash với tùy chọn -c hoặc --check để xác minh tính toàn vẹn của các tệp của chúng ta so với tệp checksum:

hash -c sample_checksums.txt

Ví dụ đầu ra:

5d10c2c4d3dc5711938f617416b2b523c4d4f3ecd85a13d7c0c6f88a45b6ebc  sample.txt
6d5f807e23db210bc254a28be2abb02f48cf35f4c8d486276e2d56cbf0d3cd36  sample_dir/

Đầu ra cho thấy các giá trị hash được tính toán cho tệp sample.txt và thư mục sample_dir khớp với các giá trị dự kiến trong tệp sample_checksums.txt, cho biết rằng các tệp chưa được sửa đổi.

Nếu giá trị hash được tính toán cho một tệp không khớp với giá trị dự kiến trong tệp checksum, lệnh hash sẽ hiển thị thông báo lỗi:

## Modify the sample.txt file
echo "This is a modified sample file." > sample.txt

hash -c sample_checksums.txt

Ví dụ đầu ra:

5d10c2c4d3dc5711938f617416b2b523c4d4f3ecd85a13d7c0c6f88a45b6ebc  sample.txt
sample.txt: FAILED
6d5f807e23db210bc254a28be2abb02f48cf35f4c8d486276e2d56cbf0d3cd36  sample_dir/

Đầu ra cho thấy tệp sample.txt đã không vượt qua kiểm tra tính toàn vẹn, cho biết rằng tệp đã được sửa đổi kể từ khi checksum được tạo.

Lệnh hash là một công cụ mạnh mẽ để xác minh tính toàn vẹn của các tệp và thư mục, và nó có thể đặc biệt hữu ích trong các tình huống mà bảo mật và độ tin cậy của dữ liệu là rất quan trọng, chẳng hạn như phân phối phần mềm, sao lưu và truyền dữ liệu.

Tóm tắt

Trong lab này, chúng ta đã tìm hiểu về lệnh hash của Linux, được sử dụng để tính toán giá trị hash mật mã của các tệp và thư mục. Chúng ta đã khám phá cách sử dụng cơ bản của lệnh hash, bao gồm cách chỉ định thuật toán băm, xác minh tính toàn vẹn của tệp và tính toán hash cho các tệp và thư mục. Chúng ta đã tạo một tệp mẫu và sử dụng lệnh hash để tính toán giá trị hash SHA-256 của nó. Công cụ này rất có giá trị để xác minh tính toàn vẹn của dữ liệu và thực hiện các tác vụ liên quan đến bảo mật khác.

400+ câu lệnh phổ biến trong Linux