Tóm Tắt
Hash Function Là Gì
Hash Function hay hàm băm là một hàm mã hóa trong máy tính. Hàm này được dùng dùng để mã hóa các dữ liệu với dung lượng bất kỳ về một loại dữ liệu với dung lượng nhất định. Hàm hash thường được dùng phổ biến với kiểu dữ liệu cơ bản như kiểu chuỗi, kiểu số, mảng, object… nhưng nó có thể dùng với bất cứ loại dữ liệu nào thậm chỉ cả kiểu dữ liệu binary (nội dung một file ảnh).
Mục đích của hàm băm là khi bạn đưa một tài liệu nguồn vào ( input ) với dung tích bất kể nó sẽ mã hóa dữ liệu này về một tài liệu khác với dung tích nhất định
Giá trị đầu ra của hàm Hash function được gọi là Hash sum và quá trình chạy hàm Hash function được gọi là hashing.
Bạn đang đọc: Hash Function
Bạn cũng có thể tự viết riêng cho mình 1 hàm hash, tuy nhiên đã có rất nhiều hàm hash được viết sẵn và bạn nên sử dụng chúng. 2 hàm băm nổi tiếng thường được sử dụng trong lập trình là là MD5 và SHA1.
Khi mã hóa hash function luôn đảm bảo trong 2 trường hợp nếu như bạn đưa dữ liệu đầu vào là như nhau thì dữ liệu đầu ra trong từng trường hợp cũng như nhau. Ví dụ, chúng ta có hàm hash
có tên là md5
thì 2 kết quả trả về từ việc chạy hàm này 2 lần với dữ liệu đầu vào đều là 5 thì dữ liệu đầu ra luôn giống nhau:
echo md5(5); // e4da3b7fbbce2345d7772b0674a318d5
echo md5(5); // e4da3b7fbbce2345d7772b0674a318d5
Ví dụ trên sử dụng hàm md5
trong PHP tuy nhiên bạn cugnx có thể sử dụng bất cứ ngôn ngữ lập trình nào khác và đa số đều có sắn thư viện của hàm này. Ở phần tiếp theo, bạn sẽ được giới thiệu về hoạt động của hàm MD5.
MD5
Trong phần này chúng ta sẽ tìm hiểu về MD5 hash function qua việc xem xét một ví dụ cụ thể về hoạt động của trang Gravatar.
Gravatar ( global avatar ) là website thông dụng trên quốc tế mà ở đó người dùng hoàn toàn có thể tải lên hình đại diện thay mặt của mình ( hay còn gọi là avatar ). Người dùng sau khi sử dụng email để ĐK dịch vụ ( hoàn toàn có thể là gmail, yahoo mail hay bất kỳ loại mail nào khác ) hoàn toàn có thể tải lên, đổi khác và xóa avatar .
Để xác định một file avatar trên máy chủ thuộc về người dùng nào trang web này sử dụng hàm băm MD5
với dữ liệu đầu vào là email của người dùng. Ví dụ:
md5('[email protected]'); // 3ed3d5dc8edb21fd94ffac8450ea7c50
Giá trị 3ed3d5dc8edb21fd94ffac8450ea7c50
sẽ được dùng để xác định tên file là avatar ứng với địa chỉ email này của người dùng.
Source: https://final-blade.com
Category: Tiền Điện Tử – Tiền Ảo