ฉันมีปัญหาในการเข้าใจวัตถุประสงค์ของเกลือเป็นรหัสผ่าน ฉันเข้าใจว่าการใช้งานหลักคือขัดขวางการโจมตีของตารางสายรุ้ง อย่างไรก็ตามวิธีการที่ฉันใช้ในการดำเนินการนี้ดูเหมือนจะไม่ทำให้ปัญหาหนักขึ้น
ฉันเคยเห็นแบบฝึกหัดมากมายที่แนะนำว่าเกลือถูกใช้ดังนี้:
$hash = md5($salt.$password)
เหตุผลที่แฮชตอนนี้แมปไม่ใช่รหัสผ่านดั้งเดิม แต่เป็นการรวมกันของรหัสผ่านและเกลือ แต่พูด$salt=foo
และและ$password=bar
$hash=3858f62230ac3c915f300c664312c63f
ตอนนี้ใครบางคนที่มีตารางสายรุ้งสามารถย้อนแฮชและสร้างอินพุต "foobar" จากนั้นพวกเขาสามารถลองใช้รหัสผ่านทั้งหมด (f, fo, foo, ... oobar, obar, bar, ar, ar) อาจใช้เวลาสองสามมิลลิวินาทีในการรับรหัสผ่าน แต่ไม่มากนัก
การใช้งานอื่นที่ฉันเห็นอยู่ในระบบ Linux ของฉัน ใน / etc / shadow รหัสผ่านที่ถูกแฮชจะถูกเก็บไว้พร้อมกับเกลือ ยกตัวอย่างเช่นเกลือของ "foo" และรหัสผ่านของ "บาร์" $1$foo$te5SBM.7C25fFDu6bIRbX1
จะสับไปนี้: หากแฮ็กเกอร์สามารถใช้มือของเขากับไฟล์นี้ได้ฉันไม่เห็นว่าจุดประสงค์ของเกลือte5SBM.7C25fFDu6bIRbX
คืออะไร
ขอบคุณสำหรับทุก ๆ แสงที่สามารถหลั่งออกมาได้
แก้ไข : ขอบคุณสำหรับความช่วยเหลือ เพื่อสรุปสิ่งที่ฉันเข้าใจเกลือทำให้รหัสผ่านที่แฮชมีความซับซ้อนมากขึ้นดังนั้นจึงมีโอกาสน้อยมากที่จะได้อยู่ในตารางรุ้งที่คำนวณไว้ล่วงหน้า สิ่งที่ฉันเข้าใจผิดมาก่อนคือฉันคิดว่ามีตารางรุ้งสำหรับแฮชทั้งหมด