ขณะที่โยฮันเน Gorset ชี้ให้เห็นโพสต์โดยโทมัส Ptacek จาก Matasano การรักษาความปลอดภัยอธิบายว่าทำไมง่ายวัตถุประสงค์ทั่วไปฟังก์ชั่นคร่ำเครียดเช่น MD5, SHA1, SHA256 และ SHA512 เป็นตัวเลือกที่น่าสงสารรหัสผ่านคร่ำเครียด
ทำไม? มันเร็วเกินไป - คุณสามารถคำนวณ MD5 ได้อย่างน้อย 1,000,000 แฮชต่อวินาทีต่อคอร์ด้วยคอมพิวเตอร์สมัยใหม่ดังนั้นการบังคับอย่างดุร้ายจึงเป็นไปได้เมื่อเทียบกับรหัสผ่านส่วนใหญ่ที่ผู้คนใช้ และนั่นน้อยกว่าคลัสเตอร์เซิร์ฟเวอร์แคร็กที่ใช้ GPU มาก!
การใส่เกลือโดยไม่ต้องขึงกุญแจหมายความว่าคุณไม่สามารถคำนวณตารางสีรุ้งล่วงหน้าได้คุณต้องสร้างมันขึ้นมาเฉพาะกิจสำหรับเกลือเฉพาะนั้น แต่มันจะไม่ทำให้สิ่งนั้นยากขึ้น
ผู้ใช้ @ จะพูดว่า:
ทุกคนพูดถึงเรื่องนี้เช่นพวกเขาสามารถแฮ็กผ่านอินเทอร์เน็ตได้ ตามที่ระบุไว้แล้วการ จำกัด ความพยายามทำให้ไม่สามารถถอดรหัสรหัสผ่านทางอินเทอร์เน็ตและไม่มีส่วนเกี่ยวข้องกับแฮช
พวกเขาไม่จำเป็นต้อง เห็นได้ชัดว่าในกรณีของ LinkedInพวกเขาใช้ช่องโหว่การแทรก SQLทั่วไปเพื่อรับตาราง DB สำหรับเข้าสู่ระบบและถอดรหัสรหัสผ่านนับล้านแบบออฟไลน์
จากนั้นเขาก็กลับไปที่สถานการณ์การโจมตีออฟไลน์:
ความปลอดภัยเข้ามามีบทบาทจริงๆเมื่อฐานข้อมูลทั้งหมดถูกบุกรุกและแฮ็กเกอร์สามารถพยายามใช้รหัสผ่าน 100 ล้านครั้งต่อวินาทีกับแฮช md5 SHA512 ช้ากว่าประมาณ 10,000 เท่า
ไม่SHA512ไม่ช้ากว่า MD5 ถึง 10,000 เท่า - ใช้เวลาเพียงสองเท่า ในทางกลับกัน Crypt / SHA512 เป็นสัตว์ร้ายที่แตกต่างกันมากเช่นเดียวกับ BCrypt ที่เป็นคู่ของมันทำการยืดคีย์สร้างแฮชที่แตกต่างกันมากโดยมีเกลือแบบสุ่มในตัวและจะใช้เวลาระหว่าง 500 ถึง 999999 เท่าในการคำนวณ (สามารถปรับการยืดได้)
SHA512 => aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
Crypt/SHA512 => $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21
ดังนั้นตัวเลือกสำหรับ PHP คือ Crypt / Blowfish (BCrypt), Crypt / SHA256 หรือ Crypt / SHA512 หรืออย่างน้อย Crypt / MD5 (PHK) ดูwww.php.net/manual/en/function.crypt.php