การใส่รหัสผ่านจะใช้เพื่อป้องกันการโจมตีแบบเรนโบว์เท่านั้น
นั่นไม่ถูกต้องทั้งหมด คุณสามารถแยกความแตกต่างของรหัสผ่านที่เหมือนกันได้อย่างง่ายดายหากไม่มีเกลือ (หรือข้อมูลอื่น) ที่ใช้แยกความแตกต่างระหว่างกรณีการใช้งานหรือผู้ใช้จริงๆ
การใช้จำนวนรอบสูงจะใช้เพื่อป้องกันรหัสผ่านสั้นๆ ที่ดุร้ายเท่านั้น
ก็ใช่ แฮชปกติเป็นแบบทางเดียวอยู่แล้ว และคุณต้องการเกลือเพื่อจุดประสงค์ข้างต้น ดังนั้นเหตุผลเดียวที่จะใช้การนับการวนซ้ำหรือปัจจัยการทำงานคือการให้ผู้โจมตีทำการวนซ้ำพื้นฐานเช่นกัน
แน่นอนว่าหากไม่มีเกลือ การนับการวนซ้ำจะทำให้การสร้างตารางสายรุ้งทำได้ยากขึ้น
แต่ถ้ารหัสผ่านถูกสร้างขึ้นโดยคอมพิวเตอร์และใช้เฉพาะในวิธีอัตโนมัติระหว่างระบบระยะไกล 2 ระบบ จะปลอดภัยหรือไม่ที่จะใส่เกลือ แต่อย่าแฮชรหัสผ่านหลายๆ รอบ
นั่นไม่ใช่รหัสผ่าน นั่นเป็นความลับ หากคุณใช้อย่างถูกต้อง คุณอาจไม่ต้องการเกลือด้วยซ้ำ แม้ว่าคุณจะต้องจำไว้ว่าความลับนั้นยังคงเหมือนเดิมในโปรโตคอลที่คุณใช้ (เช่น สำหรับการเข้ารหัส คุณต้องใช้ IV หรือ nonce เพื่อ ตรวจสอบให้แน่ใจว่าผลลัพธ์ไม่ได้เป็นตัวกำหนด)
การใช้รหัสผ่านที่สร้างขึ้นแบบสุ่มที่ยาวเป็นพิเศษ (เช่น รหัสผ่าน 256 บิต) จะเพียงพอที่จะหลีกเลี่ยงการใช้หลายรอบหรือไม่
ไม่มีสิ่งที่เรียกว่ารหัสผ่าน 256 บิต รหัสผ่านประกอบด้วยข้อความ ไม่ใช่ไบนารี 256 บิตสุ่มเป็นเรื่องปกติสำหรับ กุญแจ เช่น คีย์ AES-256 หรือคีย์ที่ใช้สำหรับ HMAC-256
รหัสผ่านอาจมีเอนโทรปี 256 บิต กระจายไปทั่ว มากมาย ตัวละคร แต่มนุษย์ไม่สามารถจำรหัสผ่านดังกล่าวได้สำหรับการทำงานปกติตัวอย่างเช่น หากคุณต้องการใช้ ASCII กับอักขระพิเศษที่เป็นไปได้ทั้งหมด (โดยไม่ต้องเว้นวรรค) คุณจะต้องมีรหัสผ่านแบบสุ่มทั้งหมด 39 อักขระ ($\log_{92}(2^{256})$ ในกรณีที่ต้องการตรวจสอบ)
และใช่ สำหรับคีย์ลับ คุณไม่จำเป็นต้องนับการวนซ้ำ หรือ PBKDF ในที่แรก. หากต้องการเกลือหรือไม่นั้นขึ้นอยู่กับว่าจะใช้อย่างไร คุณไม่จำเป็นต้องใช้ครั้งเดียว หากคุณต้องการ KDF คุณสามารถใช้ Key Based KDF เช่น HKDF