⊗ppPmAuRHS 424 of 447 menu

การเติม Salt ในการลงทะเบียน

ดังนั้น คุณทราบแล้วว่าการแฮชด้วย md5 เป็นกระบวนการที่ไม่สามารถย้อนกลับได้ และแฮกเกอร์ ที่ได้แฮชไป จะไม่สามารถได้ รหัสผ่านจากแฮชนั้นกลับมา

อันที่จริงข้อความนี้ไม่ค่อยถูกต้องนัก - ในปัจจุบัน แฮกเกอร์ร้ายได้รวบรวม ไลบรารีของแฮชจากรหัสผ่านที่นิยมและไม่ค่อยนิยม และใครก็ตามสามารถไขรหัสผ่านได้ง่ายๆ แค่ค้นหาแฮชนั้นในกูเกิล

เรากำลังพูดถึงรหัสผ่านที่ค่อนข้างง่ายและเป็นที่นิยม

ลองค้นหาในกูเกิลดู เช่น แฮช 827ccb0eea8a706c4c34a16891f84e7b และคุณจะเห็นในผลการค้นหากูเกิลทันที ว่ามันคือ รหัสผ่าน '12345'

แฮชของรหัสผ่านที่ซับซ้อนพอจะไม่สามารถไขได้ด้วยวิธีนี้ (ลองดู)

คุณอาจถามว่า แล้วปัญหามันอยู่ที่ไหน - ให้เราทุกคนลงทะเบียนด้วย รหัสผ่านที่ซับซ้อนก็สิ้นเรื่อง แต่มันมีปัญหาอยู่ - ผู้ใช้ส่วนใหญ่ไม่ค่อยคิด เรื่องความปลอดภัยของข้อมูลตัวเองและอาจใส่ รหัสผ่านที่ค่อนข้างง่าย

เราสามารถบังคับให้คิด รหัสผ่านที่ยาวขึ้นตอนลงทะเบียน โดยกำหนด จำนวนตัวอักษรขั้นต่ำเป็น 6 หรือ 8 ตัว อย่างไรก็ตาม มันก็ยังจะมี รหัสผ่านแบบ '123456' หรือ '12345678' อยู่ดี

แน่นอน เราสามารถออกแบบอัลกอริทึม การตรวจสอบความซับซ้อนของรหัสผ่านที่ฉลาดขึ้นได้ แต่มีอีก ทางออกหนึ่ง

สาระสำคัญของวิธีนี้คือ: ต้อง เติมเกลือ ให้กับรหัสผ่าน เกลือ (Salt) คือสตริงสุ่มพิเศษ ซึ่งจะถูกเติมเข้ากับรหัสผ่านตอนลงทะเบียน และแฮชจะถูกคำนวณไม่ใช่จากรหัสผ่านธรรมดา แต่จากสตริง เกลือ+รหัสผ่าน นั่น คือจากรหัสผ่านที่เติมเกลือแล้ว

นั่นคือตอนลงทะเบียนคุณจะทำ อะไรประมาณนี้:

<?php $salt = '1sJg3hfdf'; // เกลือ - สตริงสุ่มที่ซับซ้อน $password = md5($salt . $_POST['password']); // แปลงรหัสผ่านเป็นแฮชที่เติมเกลือแล้ว ?>

โดยเกลือจะต้องแตกต่างกันสำหรับผู้ใช้แต่ละคน และต้องถูกสร้างแบบสุ่ม ในขณะลงทะเบียน

นี่คือฟังก์ชันสำเร็จรูปที่ทำหน้าที่นี้:

<?php function generateSalt() { $salt = ''; $saltLength = 8; // ความยาวของเกลือ for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // อักขระจากตาราง ASCII } return $salt; } ?>

ด้วยฟังก์ชันนี้ เราสามารถเขียนโค้ดของเรา ใหม่ได้ดังนี้:

<?php $salt = generateSalt(); // เกลือ $password = md5($salt . $_POST['password']); // รหัสผ่านที่เติมเกลือแล้ว ?>

ขอย้ำอีกครั้งว่า การเปลี่ยนแปลงเหล่านี้อยู่ที่ ขั้นตอนลงทะเบียน - ในฐานข้อมูลเราเก็บไม่ใช่แค่แฮช ของรหัสผ่านธรรมดา แต่เป็นแฮชของรหัสผ่านที่เติมเกลือแล้ว

ยังไม่หมดแค่นั้น: ในตารางผู้ใช้ นอกจาก ฟิลด์ login และ password ต้อง สร้างฟิลด์ salt เพิ่มขึ้นมาอีก โดยในฟิลด์นี้ เราจะเก็บเกลือของแต่ละผู้ใช้

จงนำระบบลงทะเบียนด้วยรหัสผ่านที่เติมเกลือ ตามที่อธิบายไว้ข้างต้นไปใช้

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ