Hàm băm bảo mật bằng mật mã có thể xử lý bất kỳ chuỗi byte tùy ý nào, bất kể các byte đó là gì hoặc chúng có thể có mẫu gì, có thể cho đến kích thước tối đa được chỉ định (đối với SHA-256, là $ 2^{64} $ chút ít).
Đúng là SHA-256 sử dụng một bit duy nhất theo sau là các bit 0 như một phần của phần đệm của nó (sơ đồ Merkle-DÃ¥mgard). Tuy nhiên, mẫu đó có thể xuất hiện trong luồng đầu vào mà không gặp sự cố và vì khối cuối cùng chứa độ dài đầu vào nên chúng ta có thể phân biệt giữa mẫu đó trong đầu vào và mẫu đó như một phần của sơ đồ đệm. Vì vậy, không có bất kỳ mẫu trong dải cụ thể nào sẽ khiến hàm băm kết thúc đột ngột.
Lưu ý rằng các thuật toán băm khác, chẳng hạn như SHA-3 và BLAKE2, sử dụng các sơ đồ đệm khác nhau và chúng cũng có thể xử lý các mẫu đầu vào tùy ý mà không gặp sự cố. Các kế hoạch đệm này, mặc dù khác với cấu trúc Merkle-DÃ¥mgard, nhưng cũng được cho là an toàn và thực sự có thể được ưa chuộng hơn vì những lý do khác.
Thông thường, khi chúng ta viết một API cho các byte băm, chúng ta sẽ có ba hàm: một hàm khởi tạo, thiết lập thuật toán với các tham số phù hợp; một chức năng cập nhật, đưa đầu vào vào hàm băm; và một hàm hoàn thiện, thực hiện đệm, kết thúc quá trình băm và trả về kết quả băm. Do đó, chúng tôi luôn chỉ ra rõ ràng rằng quá trình băm sẽ kết thúc mà không cần quan tâm đến dữ liệu đầu vào.