Cho đến nay, trong các bài học trước, bạn đã học hashing là gì và hashing hoạt động như thế nào.
Nhưng để thực sự hiểu những chương trình chuyên biệt này làm gì, sẽ rất hữu ích nếu được xem ví dụ thực tế đang hoạt động!

Hãy cùng xem quá trình hashing hoạt động như thế nào bằng cách sử dụng một hàm băm thực tế.
Vì SHA-256 là hàm băm được Bitcoin chọn, hãy dùng nó cho ví dụ của chúng ta.
Đây là input ví dụ đầu tiên của chúng ta:
BabyPips.com is cool as ice.
Khi đưa qua hàm băm SHA-256, câu này tạo ra hash value sau, còn được gọi là “digest” hoặc đơn giản là “hash”:
A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57
Bạn có thể thấy digest là sự kết hợp giữa chữ cái và số. Và nó chính xác dài 64 ký tự.
Ngoài ra, thực sự không có gì nhiều để học thêm khi nhìn vào digest này. Không có mẫu hay manh mối nào cho thấy input là gì. Nó trông chỉ như một đống ký tự vô nghĩa.
Output có vẻ ngẫu nhiên. Nhưng không có cách nào bạn có thể đoán được input chỉ bằng cách nhìn output.
Nếu bạn chạy input qua hàm băm SHA-256 lần nữa, bạn sẽ nhận được chính xác cùng output (“hash”) một lần nữa.
Cùng một input sẽ LUÔN tạo ra cùng một output.
Bây giờ, hãy thay đổi một chút input của ví dụ đầu tiên và xem điều gì xảy ra:
BabyPips.com is cool as lice.
Hãy chú ý rằng chữ “l” đã được thêm vào đầu từ “ice” để thành “lice”.
Đây là digest mới:
B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95
Bây giờ hãy so sánh hai cái:
| Input | Digest |
| BabyPips.com is cool as ice. | A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57 |
| BabyPips.com is cool as lice. | B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95 |
Bạn có thể thấy đây là kết quả hoàn toàn khác biệt so với digest đầu tiên!
Dù input gần như giống hệt nhau, chỉ thay đổi một ký tự duy nhất đã tạo ra output hoàn toàn khác.

Rận (lice) khá ghê tởm, nên hãy thay đổi input thêm một lần nữa:
BabyPips.com is cool as rice.
Bây giờ hãy xem điều gì xảy ra:
FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A
Lại một input hoàn toàn khác!
Bây giờ hãy so sánh cả ba:
| Input | Digest |
| BabyPips.com is cool as ice. | A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57 |
| BabyPips.com is cool as lice. | B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95 |
| BabyPips.com is cool as rice. | FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A |
Rất đáng nhấn mạnh rằng bất kỳ input nào cũng có thể được đưa vào hàm băm.
Dù input dài bao nhiêu, output sẽ luôn có cùng độ dài cố định và nó luôn trông hoàn toàn ngẫu nhiên.
Hãy thử nghiệm với công cụ này để tự xem:
Bộ tạo mã SHA-256
Hãy thử thay đổi một chút những gì bạn gõ vào và chú ý hash khác biệt đến mức nào.
Thật thú vị phải không?! 🤓
Chúc mừng! Bạn đã tự tạo ra hash của riêng mình! 👏
Nguồn: https://www.babypips.com/crypto/learn/examples-of-hashing
