Hàm băm (Hash function) là bất kỳ hàm nào có thể được sử dụng để ánh xạ dữ liệu có kích thước tùy ý lên dữ liệu có kích thước cố định. Các giá trị được trả về bởi một hàm băm được gọi là giá trị băm , mã băm , tiêu hóa , hoặc đơn giản là băm .
Các hàm băm thường được sử dụng kết hợp với bảng băm , một cấu trúc dữ liệu phổ biến được sử dụng trong phần mềm máy tính để tra cứu dữ liệu nhanh chóng. Các hàm băm tăng tốc tra cứu bảng hoặc cơ sở dữ liệu bằng cách phát hiện các bản ghi trùng lặp trong một tệp lớn.
Một ứng dụng như vậy là tìm kiếm các đoạn tương tự trong chuỗi DNA. Chúng cũng hữu ích trong mật mã . Một Hàm băm mật mã cho phép người ta dễ dàng xác minh xem một số ánh xạ dữ liệu đầu vào vào một giá trị băm nhất định, nhưng nếu dữ liệu đầu vào không xác định thì rất khó để tái cấu trúc nó (hoặc bất kỳ giải pháp thay thế tương đương nào) bằng cách biết giá trị băm được lưu trữ. Điều này được sử dụng để đảm bảo tính toàn vẹn của dữ liệu được truyền và là khối xây dựng cho các HMAC, cung cấp xác thực thư .
Các hàm băm có liên quan đến (và thường bị nhầm lẫn với) tổng kiểm tra , chữ số kiểm tra , dấu vân tay , nén mất dữ liệu , hàm ngẫu nhiên , mã sửa lỗi và mật mã . Mặc dù các khái niệm chồng chéo đến một mức độ nào đó, mỗi người có cách sử dụng và yêu cầu riêng và được thiết kế và tối ưu hóa khác nhau. Ví dụ, cơ sở dữ liệu HashKeeper được duy trì bởi Trung tâm tình báo ma túy quốc gia Hoa Kỳ, được mô tả một cách thông minh như một danh mục dấu vân tay của tệp hơn là giá trị băm.