Như đã đề cập trong các nhận xét, bcrypt là hàm băm mật khẩu và có những hạn chế đáng kể so với hàm băm mật mã chung.
Sử dụng nó như dự định, để nhập mật khẩu, nhưng với muối giống như đầu vào, sẽ an toàn như không sử dụng muối. Mục đích của muối là ngăn chặn các cuộc tấn công đa mục tiêu và ngăn chặn việc sử dụng bảng cầu vồng. Nếu muối giống với đầu vào, điều này cho phép các cuộc tấn công đó, vì kẻ tấn công hiện biết bất kỳ loại muối nào sẽ là gì đối với một mật khẩu mục tiêu nhất định.
Sử dụng nó như một hàm băm chung sẽ gặp phải một loạt vấn đề hoàn toàn khác, tệ nhất là xung đột. bcrypt có giới hạn đầu vào là 72 byte đối với văn bản đầu vào, nếu bạn băm các phần dữ liệu lớn thì nó sẽ có cùng hàm băm như tiền tố 72 byte của nó. bcrypt cũng lặp lại các đầu vào ngắn cho đến khi nó lấp đầy mảng trạng thái 72 byte, do đó, mật khẩu 18 ký tự sẽ có cùng đầu ra với mật khẩu đó được lặp lại 4 lần. Việc triển khai có thể băm trước đầu vào bằng một cái gì đó như SHA-512 trước khi nó được chuyển sang bcrypt, điều này ngăn chặn các sự cố đó. Mặc dù trong trường hợp đó, mặc dù nó chậm, nhưng đầu ra của nó vẫn chỉ có độ dài 192 bit, điều này hạn chế đáng kể khả năng chống va chạm của nó để sử dụng trong những thứ như chữ ký số.
Với tất cả những hạn chế đó, rõ ràng có những lựa chọn tốt hơn nếu bạn muốn làm chậm hàm băm, điều rõ ràng nhất là chỉ cần chạy lại đầu ra của hàm băm nhiều lần. Điều này cũng ít phức tạp hơn bcrypt và có thể cho phép bạn sử dụng lại các chức năng hiện có trong cả phần mềm và phần cứng. Nếu bạn lo lắng về việc bị mắc kẹt trong chuỗi băm vì một lý do nào đó, bạn luôn có thể thêm một từ bộ đếm lặp đơn giản vào đầu vào.Đối với một số hàm băm được tham số hóa, bạn cũng có thể tăng số vòng bên trong. Ví dụ: Keccak có thể dễ dàng được mở rộng để sử dụng nhiều vòng hơn, một số triển khai tạo khóa vòng theo thuật toán có thể chỉ yêu cầu thay đổi một dòng mã.