Hashing là quy trình dịch một khóa nhất định thành một mã. Một hàm băm có thể được sử dụng để thay thế dữ liệu bằng một mã băm mới được tạo. Thuật toán băm thường được sử dụng để cung cấp dấu vân tay kỹ thuật số của nội dung tệp thường được sử dụng để cung cấp rằng tệp không bị thay đổi bởi kẻ xâm nhập hoặc vi rút. Các hàm băm cũng được một số hệ điều hành sử dụng để mã hóa mật khẩu. Hàm băm hỗ trợ việc đo lường tính toàn vẹn của tệp.
Hashing tạo ra việc sử dụng các thuật toán chuyển đổi các khối thông tin từ tệp thành một giá trị ngắn hơn nhiều hoặc khóa 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 một tệp nhất định và phải có thể thay đổi ngay cả khi một byte dữ liệu riêng lẻ trong tệp đó được chuyển đổi (hiệu ứng tuyết lở).
Điều này hỗ trợ lợi thế lớn trong việc băm về mặt nén dữ liệu. Mặc dù băm không phải là nén, nhưng nó có thể hoạt động rất giống như nén tệp ở chỗ nó chiếm một tập dữ liệu cao hơn và thu nhỏ nó thành một dạng khả thi hơn.
Một hàm băm tốt cho các mục tiêu bảo mật phải là một quá trình đơn hướng cần thuật toán băm một chiều. Do đó, tin tặc có thể chỉ cần đảo ngược kỹ thuật băm để biến đổi nó trở lại dữ liệu ban đầu, đánh bại các mục tiêu của mã hóa ngay từ đầu.
Nó có thể làm tăng tính duy nhất 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 một hàm băm. Kỹ thuật này được gọi là "ướp muối" và đảm bảo đầu ra duy nhất ngay cả trong phương pháp của các đầu vào giống hệt nhau.
Một hàm băm mật mã phải hoạt động càng nhiều càng tốt giống như một hàm ngẫu nhiên trong khi vẫn có thể xác định và tính toán hiệu quả. Một hàm băm mật mã được coi là không an toàn nếu một trong hai cách sau là khả thi về mặt tính toán -
-
Nó có thể đang tìm một thông báo (chưa từng thấy trước đây) phù hợp với một thông báo nhất định.
-
Nó có thể là tìm "xung đột", trong đó hai thông báo khác nhau có cùng một thông báo về thông báo.
Chẳng hạn, kẻ tấn công có thể thực hiện một trong hai điều này có thể sử dụng chúng để tạo một tin nhắn trái phép cho một tin nhắn được ủy quyền. Về mặt khái niệm, cần phải lưu ý rằng khả thi khi phát hiện ra hai thông điệp có tiêu chuẩn về cơ bản là giống nhau; cũng không ai muốn kẻ tấn công có thể hiểu bất cứ điều gì có lợi về tình trạng chỉ được cung cấp thông tin về nó. Kẻ tấn công biết được một phần thông tin tối thiểu, chính là thông báo, ví dụ, cung cấp cho kẻ tấn công khả năng xác định thông báo cùng tên nếu nó xuất hiện trở lại.
Việc băm cũng có giá trị trong việc tránh hoặc phân tích việc giả mạo tệp. Tệp ban đầu sẽ tạo ra một hàm băm được duy trì cùng với dữ liệu tệp. Tệp và mã băm hiện có và bên nhận sẽ kiểm tra hàm băm đó để xem liệu tệp đã được thương lượng chưa. Nếu có bất kỳ thay đổi nào đối với tài liệu, hàm băm sẽ hiển thị điều đó.