This article has been translated from English to Vietnamese.
Mục đích của hashing là gì?
Mục đích chính của hashing là xác minh tính toàn vẹn của dữ liệu.
Vì hash được tạo ra là DUY NHẤT cho dữ liệu đầu vào, nó hoạt động như một “dấu vân tay” độc đáo của dữ liệu đó.
Điều này làm cho hash trở nên hữu ích trong việc xác minh tính toàn vẹn của dữ liệu được gửi qua các kênh truyền thông không an toàn như internet. Tính toàn vẹn của dữ liệu chỉ đơn giản có nghĩa là dữ liệu chưa bị thay đổi theo cách không được phê duyệt.
Giá trị hash của dữ liệu nhận được có thể được so sánh với giá trị hash của dữ liệu trước khi nó được gửi để xác định xem dữ liệu có bị thay đổi hay không.
Nếu tôi đăng cả thông điệp và giá trị hash tôi đã tạo từ nó, bạn có thể tạo một giá trị hash từ thông điệp mà bạn nhận được và so sánh các giá trị hash.
Dùng một ví dụ đơn giản, giả sử chúng ta chuẩn bị đi ăn trưa, và ngay trước khi tôi ra khỏi cửa, tôi nhớ lại lần gặp cuối cùng của chúng ta…

Dù tính cách của bạn rất dễ chịu, nhưng mùi của bạn thì không dễ chịu chút nào. 😬
Vì vậy, tôi muốn gửi bạn một thông điệp, “Nhớ xịt khử mùi nhé.”
Nhưng trước khi tôi gửi điều này, tôi chạy nó qua hàm hash (SHA-256). Hash là:
33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef
Tôi gửi bạn giá trị hash này trước.*
SAU ĐÓ tôi gửi bạn thông điệp văn bản thực tế.
Một khi bạn nhận được thông điệp của tôi, bạn nghĩ, “Cái quái gì thế? Có thật anh ta vừa nói điều đó với tôi không? Hay là thông điệp đã bị can thiệp trong quá trình truyền và thông điệp gốc đã bị thay đổi?”

Vì vậy, bạn chạy thông điệp qua cùng hàm hash.
33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef
Sau đó bạn so sánh hash của bạn với hash đã đến trước thông điệp văn bản.
Nếu cả hai giá trị hash là giống nhau, thì điều này chứng tỏ rằng:
- Thông điệp đã được gửi chính xác.
- Rằng nách của bạn thực sự có mùi hôi!
- Thông điệp không bị cố ý thay đổi bởi ai đó giữa lúc tôi gửi nó cho bạn và bạn nhận được nó.
Tất nhiên, trong thế giới thực, là máy tính của chúng ta làm tất cả điều này giúp chúng ta.
Và hy vọng rằng bạn sẽ giữ cho nách của mình luôn thơm tho. 😅
*Về mặt kỹ thuật, trước khi tôi gửi bạn hash, nó phải được bảo vệ bằng cách nào đó, nhưng tôi muốn giữ cho ví dụ đơn giản. Cách hash được bảo vệ trong quá trình truyền tải sẽ được đề cập trong bài học sau.
Ví dụ thực tế về Hashing: Mật khẩu trực tuyến
Điều này có thể làm bạn ngạc nhiên, nhưng bạn có thể gặp phải hashing trong cuộc sống hàng ngày của mình... mỗi khi bạn đăng nhập để kiểm tra email. 📧

Khi bạn tạo địa chỉ email và mật khẩu, nhà cung cấp email của bạn có thể không lưu mật khẩu thực của bạn.
Thay vào đó, nhà cung cấp email của bạn chạy mật khẩu qua hàm hash và lưu hash của mật khẩu của bạn.
Mỗi lần bạn cố gắng đăng nhập vào tài khoản email của bạn, nhà cung cấp email hash mật khẩu BẠN nhập và so sánh hash này với hash mà nó đã lưu.
Chỉ khi hai hash trùng khớp bạn mới được phép truy cập email của mình.
Hãy cùng xem tại sao họ KHÔNG lưu mật khẩu thực của bạn…
Nếu mật khẩu thực được lưu trữ, và hacker xâm nhập vào hệ thống của họ, họ có thể đánh cắp chúng. Điều này chắc chắn không tốt cho người dùng sử dụng cùng một mật khẩu cho nhiều trang web!
Một giải pháp là hash mật khẩu…
Bằng cách hash mật khẩu, công ty bảo vệ thông tin người dùng. Ngay cả khi hacker xâm nhập vào hệ thống, họ cũng không có quyền truy cập vào mật khẩu thực, chỉ có các hash.
Hãy nhớ rằng, các hash là không thể đảo ngược nên không thể để hacker tìm ra mật khẩu thực chỉ bằng cách nhìn vào hash. Hashing đảm bảo rằng dữ liệu được lưu trữ trong trạng thái bị xáo trộn, khiến việc đánh cắp trở nên khó khăn hơn.

Mỗi khi bạn đăng nhập, nhà cung cấp email của bạn không lưu mật khẩu dưới dạng văn bản thuần, tất cả những gì họ cần là hash.
Khi bạn nhập mật khẩu, nó được chạy qua hàm hash.
Đầu ra được so sánh với hash đã được lưu trong cơ sở dữ liệu.Nếu các giá trị hash giống nhau, mật khẩu là chính xác.
Nhập mật khẩu sai sẽ tạo ra một hash khác so với hash đã lưu. Các hash sẽ KHÔNG khớp, vì vậy nỗ lực đăng nhập của bạn sẽ THẤT BẠI.
Vì vậy, như bạn có thể thấy, một hàm hash xáo trộn dữ liệu và làm cho nó không thể đọc được. Ngay cả khi hacker có quyền truy cập vào máy chủ của nhà cung cấp email của bạn, các chi tiết lưu trữ không thể bị giải mã.


