This article has been translated from English to Vietnamese.

Cho đến giờ, trong các bài học trước, bạn đã học hashing là gìcách hashing hoạt động.

Nhưng để thực sự hiểu các chương trình đặc biệt này làm gì, sẽ hữu ích nếu thấy ví dụ thực tế trong hành động!

Xem cách hashing hoạt động!

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 hash thực sự.

SHA-256 là hàm hash được Bitcoin chọn, hãy dùng nó cho ví dụ của chúng ta.

Đây là ví dụ đầu tiên của chúng ta:

BabyPips.com is cool as ice.

Khi chạy qua hàm hash SHA-256, câu này tạo ra giá trị hash sau đây, còn được gọi là “digest” hoặc đơn giản là “hash”:

A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57

Bạn có thể thấy digest là một tổ hợp các chữ cái và số. Và nó dài đúng 64 ký tự.

Ngoài ra, thực sự không có nhiều điều bạn có thể học được từ việc nhìn vào digest này. Không có mẫu nào hay gợi ý nào về đầu vào là gì. Nó chỉ trông như một mớ bòng bong.

Đầu ra trông có vẻ ngẫu nhiên. Nhưng không có cách nào bạn có thể đoán đầu vào chỉ bằng cách nhìn vào đầu ra.

Nếu bạn chạy lại đầu vào qua hàm hash SHA-256, bạn sẽ nhận được chính xác cùng một đầu ra (“hash”) lần nữa.

Cùng một đầu vào sẽ LUÔN LUÔN tạo ra cùng một đầu ra.

Giờ thì hãy thực hiện một thay đổi nhỏ trong đầu vào của ví dụ đầu tiên để xem điều gì xảy ra:

BabyPips.com is cool as lice.

Lưu ý rằng chữ “l” đã được thêm vào đầu từ “ice” để tạo thành “lice”.

Đây là digest mới:

B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95

Giờ hãy so sánh hai cái này:

Đầu vào Digest
BabyPips.com is cool as ice. A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57
BabyPips.com is cool as lice. B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95

Bạn có thể thấy đây là một kết quả hoàn toàn khác so với digest đầu tiên!

Mặc dù các đầu vào hầu như giống hệt nhau, chỉ thay đổi một ký tự đã tạo ra một đầu ra hoàn toàn khác.

Lice is so cool

Chấy rận khá kinh tởm nên hãy thực hiện một thay đổi nữa cho đầu vào:

BabyPips.com is cool as rice.

Giờ hãy xem điều gì xảy ra:

FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A

Một đầu ra hoàn toàn khác một lần nữa!

Giờ hãy so sánh cả ba:

Đầu vào Digest
BabyPips.com is cool as ice. A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57
BabyPips.com is cool as lice. B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95
BabyPips.com is cool as rice. FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A

Đáng lưu ý rằng thực sự bất kỳ đầu vào nào cũng có thể được đưa vào một hàm hash.

Bất kể độ dài của đầu vào, đầu ra sẽ luôn có độ dài cố định và nó sẽ luôn trông hoàn toàn ngẫu nhiên.

Chơi với công cụ này để tự mình thấy:

Thử tạo một thay đổi nhỏ với những gì bạn gõ vào và chú ý rằng hash khác biệt như thế nào.

Thú vị phải không?! 🤓

Xin chúc mừng! Bạn đã tạo ra những hash của riêng mình! 👏