Hàm băm là thủ tục chuyển đổi một khóa cho trước thành mã. Hàm băm có thể được dùng để thay thế dữ liệu bằng mã băm mới được tạo. Thuật toán băm thường được dùng để cung cấp dấu vân tay số của nội dung tệp thường dùng để đảm bảo tệp không bị thay đổi bởi kẻ xâm nhập hoặc virut. Hàm băm cũng được sử dụng bởi một số hệ điều hành để mã hóa mật khẩu. Hàm băm cung cấp thước đo toàn vẹn của tệp.
Hàm băm sử dụng thuật toán chuyển đổi khối thông tin từ tệp thành giá trị hoặc khóa ngắn hơn nhiều có độ dài không đổi xác định các chuỗi đó. Giá trị băm kết quả là một loại tóm tắt tập trung của mỗi chuỗi bên trong tệp cho trước, và phải có thể thay đổi ngay cả khi một byte dữ liệu đơn lẻ trong tệp đó bị chuyển đổi (hiệu ứng tuyết lở).
Điều này cung cấp lợi thế lớn về mặt nén dữ liệu. Mặc dù băm không phải là nén, nó hoạt động rất giống nén tệp vì nó lấy tập dữ liệu lớn hơn và co nó thành dạng khả thi hơn.
Một hàm băm tốt cho mục đích an ninh nên là quy trình một chiều cần thuật toán băm một chiều. Do đó, hacker có thể đơn giản reverse engineer băm để chuyển đổi nó ngược lại dữ liệu gốc, đánh bại mục đích của mã hóa ngay từ đầu.
Có thể tăng tính độc đáo của đầu ra được mã hóa, thông tin ngẫu nhiên có thể được thêm vào đầu vào của hàm băm. Kỹ thuật này được gọi là "salting" (muối) và đảm bảo đầu ra độc đáo ngay cả trong phương pháp các đầu vào giống hệt nhau.
Một hàm băm mật mã nên hành xử nhiều nhất có thể như một hàm ngẫu nhiên trong khi vẫn là xác định론和有效计算。如果以下任何一项在计算上可行,则认为加密哈希函数不安全:
- Tìm một thông điệp (chưa từng thấy) khớp với một bản tóm tắt cho trước.
- Tìm "va chạm", trong đó hai thông điệp khác nhau có cùng bản tóm tắt thông điệp.
Kẻ tấn công có thể làm một trong hai điều này có thể, ví dụ, dùng chúng để thay thế thông điệp trái phép cho thông điệp được phép. Khái niệm, thậm chí không nên khả thi để tìm thấy hai thông điệp có bản tóm tắt gần như giống nhau; cũng không muốn kẻ tấn công có thể hiểu bất cứ điều gì hữu ích về thông điệp chỉ cho bản tóm tắt của nó. Kẻ tấn công học được tối thiểu một mảnh thông tin, bản tóm tắt bản thân, ví dụ cung cấp cho kẻ tấn công khả năng nhận diện cùng thông điệp nên nó xuất hiện lại.
Hàm băm cũng có giá trị trong việc ngăn chặn hoặc phân析篡改文件。初始文件将生成一个与文件数据一起维护的哈希值。文件和哈希被发送,接收方检查哈希以查看文件是否已被妥协。如果文档有任何更改,哈希将显示这一点。