You are on page 1of 3

HASH FUNCTIONS

Bài này giúp sinh viên làm quen với các thuật toán băm (hash algorithms) khác nhau, bao gồm MD5, SHA1,
SHA256, SHA512 và RIPEMD. Sinh viên sẽ tạo hàm băm cho các từ khóa nhất định (được lưu trữ trong file
keywords.txt) bằng cách sử dụng các thuật toán băm khác nhau và kiểm tra xem mã băm đó có trong file
lưu trữ các mã băm hashes.txt hay không.

Cho trước:

- Các từ khóa đầu vào: cybersecurity, cryptography, visual studio code, communication link, Alice
- Hash file = hashes.txt (có một tập gồm 10 mã băm cho mỗi thuật toán băm)
- Thuật toán băm = MD5, SHA1, SHA256, SHA512 và RIPEMD

Nhiệm vụ:

1. Chọn 1 từ khóa và tính toán mã băm của nó sử dụng thuật toán băm MD5
2. So sánh mã băm đã tính với những mã băm có trong file hashes.txt
3. Nếu khớp với một mã băm có trong file hashes.txt thì chuyển sang từ khóa thứ 2, nếu không thì
làm lại nhiệm vụ 1 và 2 với một thuật toán băm khác
4. Thực hiện từ nhiệm vụ 1 tới nhiệm vụ 3 cho tất cả các từ khóa đầu vào trong file keywords.txt
5. Ghi chú lại từ khoá kèm theo mã băm và thuật toán băm tương ứng nếu khớp ở nhiệm vụ 3.

Môi trường/ Công cụ:

Để triển khai, có thể setup môi trường sau:

- WSL2 (Link hướng dẫn cài đặt: Link )


- Thư viện OpenSSL

Ngoài ra sinh viên có thể triển khai ở các môi trường khác như là chạy máy ảo có cài Ubuntu hoặc Kali-
Linux.

Triển khai:

Bước 1.

Mở Terminal của Ubuntu lên.

Bước 2.

Tạo một thư mục cryptolabs để lưu trữ các file hashes.txt, keywords.txt và script.sh.
Sinh viên có thể sử dụng nano hoặc vim để tạo các file này trong thư mục cryptolabs.

Bước 3.

Để tìm mã băm của từ khóa “cybersecurity”, ta thực hiện câu lệnh:

$echo -n "cybersecurity" | openssl dgst -md5

Trong câu lệnh này:

- echo -n "cybersecurity" | openssl dgst -md5: là lệnh để in hoặc sửa nội dung. Ở đây
nó được sử dụng để truyền từ khóa "cybersecurity"
- echo -n "cybersecurity" | openssl dgst -md5: được sử dụng để loại bỏ dòng thừa
(/n), được hiển thị theo mặc định của lệnh echo
- echo -n "cybersecurity" | openssl dgst -md5: là từ khóa đầu vào
- echo -n "cybersecurity" | openssl dgst -md5: là hàm được sử dụng để chuyển đầu
ra của lệnh trước làm đầu vào của lệnh sau
- echo -n "cybersecurity" | openssl dgst -md5: là thư viện chứa các thuật toán mã
hóa
- echo -n "cybersecurity" | openssl dgst -md5: tính mã băm của đầu vào nhận được
là "cybersecurity" sử dụng hàm băm MD5

Bước 4.

Bây giờ, thực thi bash script trong thư mục cryptolabs, sử dụng câu lệnh:
$bash script.sh

Sau đó, nhập vào mã băm đã tính được từ bước 3.

Trong câu lệnh này:

- bash script.sh: là một shell được sử dụng để thực thi các tập lệnh scripts
- bash script.sh: là một tập lệnh nhận đầu vào là một mã băm và kiểm tra xem mã băm này có
tồn tại trong file hashes.txt hay không.

Bước 5.

Nếu không tìm thấy mã băm, hãy lặp lại bước 3 và bước 4, sử dụng chung từ khóa cybersecurity nhưng
với thuật toán băm khác cho đến khi kết quả trả về là Match Found! thì dừng và ghi chú lại mã băm và
thuật toán băm tương ứng cho từ khóa cybersecurity.

Bước 6.

Lặp lại bước 3,4 và 5 nhưng cho các từ khóa còn lại.

Kết quả:

Điền kết quả tương ứng và bảng sau:

STT Từ khóa Thuật toán băm Mã băm


1 cybersecurity
2 cryptography
3 visual studio code
4 communication link
5 Alice

Nộp lại file docx gồm:

1) Điền đầy đủ thông tin vào bảng trên


2) Sự khác nhau của 5 thuật toán mã băm MD5, SHA1, SHA256, SHA512, RIPEMD

You might also like