พื้นหลัง
คุณไม่เคย ... จริง ๆ ... จำเป็นต้องรู้รหัสผ่านของผู้ใช้ คุณเพียงแค่ต้องการตรวจสอบผู้ใช้ที่เข้ามารู้รหัสผ่านสำหรับบัญชี
Hash It:
เก็บรหัสผ่านของผู้ใช้ที่แฮช (การเข้ารหัสแบบทางเดียว) ผ่านฟังก์ชั่นแฮชที่แข็งแกร่ง การค้นหา "c # เข้ารหัสรหัสผ่าน" ให้ตัวอย่างมากมาย
ดูผู้สร้างแฮช SHA1 ออนไลน์เพื่อดูแนวคิดเกี่ยวกับฟังก์ชันแฮชที่สร้าง (แต่อย่าใช้ SHA1 เป็นฟังก์ชันแฮชใช้อะไรที่แรงกว่าเช่น SHA256)
ตอนนี้รหัสผ่านที่ถูกแฮชหมายความว่าคุณ (และขโมยฐานข้อมูล) ไม่สามารถย้อนกลับการแฮชกลับไปเป็นรหัสผ่านเดิมได้
วิธีใช้:
แต่คุณจะบอกว่าฉันจะใช้รหัสผ่านที่ถูกบดซึ่งจัดเก็บไว้ในฐานข้อมูลได้อย่างไร
เมื่อผู้ใช้เข้าสู่ระบบพวกเขาจะมอบชื่อผู้ใช้และรหัสผ่านให้คุณ (ในข้อความต้นฉบับ) คุณเพียงแค่ใช้รหัสแฮชเดียวกันเพื่อแฮชรหัสผ่านที่พิมพ์ไว้เพื่อรับรุ่นที่เก็บไว้
ดังนั้นเปรียบเทียบรหัสผ่านที่แฮชสองรหัส (แฮชฐานข้อมูลสำหรับชื่อผู้ใช้และรหัสผ่านที่พิมพ์ใน & แฮช) คุณสามารถบอกได้ว่า "สิ่งที่พวกเขาพิมพ์ใน" จับคู่ "สิ่งที่ผู้ใช้เดิมป้อนสำหรับรหัสผ่านของพวกเขา" โดยการเปรียบเทียบแฮชของพวกเขา
สินเชื่อพิเศษ:
คำถาม:ถ้าฉันมีฐานข้อมูลของคุณฉันไม่สามารถใช้แคร็กเกอร์อย่าง John the Ripper และเริ่มแฮชได้จนกว่าฉันจะหาคู่ที่ตรงกับที่คุณเก็บไว้และรหัสผ่านที่แฮช (เนื่องจากผู้ใช้เลือกคำศัพท์สั้น ๆ อยู่ดี ... มันควรจะง่าย)
คำตอบ:ใช่ ... ใช่พวกเขาทำได้
ดังนั้นคุณควร 'เกลือ' รหัสผ่านของคุณ ดูบทความ Wikipedia เกี่ยวกับเกลือ
ดู"วิธีแฮชข้อมูลด้วยเกลือ" ตัวอย่าง C #