password_hash เป็นฟังก์ชันที่ใช้ใน PHP เพื่อสร้างข้อความรหัสผ่านที่ถูกเข้ารหัสแบบสมัยใหม่ โดยอาศัยอัลกอริทึมเข้ารหัสหลายรูปแบบ เช่น bcrypt, Argon2i หรือ Argon2id คุณไม่จำเป็นต้องกำหนด salt ด้วยตนเองเนื่องจากฟังก์ชันนี้จะทำการสร้าง salt ให้โดยอัตโนมัติ
การใช้ password_hash คือ
$options = [ 'cost' => 12, // ตัวเลือกนี้เป็นตัวกำหนดความยากของการเข้ารหัส ค่าเริ่มต้นคือ 10 ]; $hashedPassword = password_hash('password_plain', PASSWORD_BCRYPT, $options);
เมื่อคุณมีข้อความรหัสผ่านที่ถูกเข้ารหัสแล้ว คุณสามารถตรวจสอบข้อความรหัสผ่านด้วยฟังก์ชัน password_verify
if (password_verify('password_plain', $hashedPassword)) { echo 'Password is valid!'; } else { echo 'Invalid password.'; }
การใช้ password_hash จะช่วยให้คุณสามารถเข้ารหัสรหัสผ่านของคุณได้อย่างปลอดภัย และยังมีฟังก์ชัน password_needs_rehash ที่ช่วยตรวจสอบว่ารหัสผ่านที่ถูกเข้ารหัสแล้วต้องการการเข้ารหัสใหม่หรือไม่ ตามตัวเลือกที่กำหนด
อ้างอิงจาก
https://www.php.net/manual/en/function.password-hash.php
https://phppasswordhash.com/