ตามที่กล่าวไว้ในความคิดเห็น bcrypt เป็นแฮชรหัสผ่าน และมีข้อจำกัดที่สำคัญเมื่อเทียบกับฟังก์ชันแฮชการเข้ารหัสทั่วไป
ใช้ตามที่ตั้งใจไว้สำหรับการป้อนรหัสผ่าน แต่ใช้เกลือเหมือนกับอินพุต จะปลอดภัยเท่ากับการไม่ใส่เกลือเลย จุดประสงค์ของเกลือคือเพื่อป้องกันการโจมตีหลายเป้าหมายและป้องกันการใช้ตารางสายรุ้ง หากเกลือเหมือนกับอินพุต สิ่งนี้จะอนุญาตให้โจมตีได้ เนื่องจากตอนนี้ผู้โจมตีรู้แล้วว่าเกลือสำหรับรหัสผ่านเป้าหมายที่กำหนดคืออะไร
การใช้เป็นฟังก์ชันแฮชทั่วไปจะทำให้ชุดของปัญหาแตกต่างไปจากเดิมอย่างสิ้นเชิง ซึ่งเลวร้ายที่สุดคือการชนกัน bcrypt มีขีด จำกัด อินพุต 72 ไบต์สำหรับข้อความอินพุต หากคุณแฮชข้อมูลจำนวนมาก มันจะมีแฮชเดียวกันกับคำนำหน้า 72 ไบต์ bcrypt ยังป้อนอินพุตสั้นๆ ซ้ำจนกว่าจะเต็มอาร์เรย์สถานะ 72 ไบต์ ดังนั้นรหัสผ่าน 18 อักขระจะมีเอาต์พุตเดียวกันกับรหัสผ่านนั้นซ้ำ 4 ครั้ง การใช้งานอาจแฮชอินพุตล่วงหน้าด้วยบางอย่างเช่น SHA-512 ก่อนที่จะได้รับ bcrypt ซึ่งป้องกันปัญหาเหล่านั้น แม้ว่าในกรณีดังกล่าว แม้ว่าจะช้า แต่เอาต์พุตก็ยังมีความยาวเพียง 192 บิต ซึ่งจำกัดความต้านทานการชนกันอย่างมากสำหรับการใช้งานในสิ่งต่างๆ เช่น ลายเซ็นดิจิทัล
ด้วยข้อจำกัดทั้งหมดเหล่านี้ มีตัวเลือกที่ดีกว่าอย่างชัดเจนหากคุณต้องการทำให้ฟังก์ชันแฮชช้าลง วิธีที่ชัดเจนที่สุดคือเรียกใช้เอาต์พุตของฟังก์ชันแฮชซ้ำๆ ซ้ำๆ สิ่งนี้ยังซับซ้อนน้อยกว่า bcrypt และสามารถให้คุณนำฟังก์ชันที่มีอยู่แล้วมาใช้ซ้ำได้ทั้งในซอฟต์แวร์และฮาร์ดแวร์ หากคุณกังวลเกี่ยวกับการติดขัดในแฮชเชนด้วยเหตุผลบางประการ คุณสามารถเพิ่มคำนับการวนซ้ำอย่างง่ายลงในอินพุตได้เสมอสำหรับฟังก์ชันแฮชแบบกำหนดพารามิเตอร์บางตัว คุณสามารถเพิ่มจำนวนรอบภายในได้ ตัวอย่างเช่น Keccak สามารถขยายให้ใช้รอบได้มากขึ้น การใช้งานบางอย่างที่สร้างปุ่มรอบตามอัลกอริทึมอาจต้องการการเปลี่ยนแปลงโค้ดเพียงบรรทัดเดียว