Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

การเข้ารหัสรหัสผ่านใน PHP


เนื่องจาก Blowfish มีช่องโหว่ก่อน PHP เวอร์ชัน 5.3.7 จึงแนะนำให้ใช้ SHA-256 หรือ SHA-512 แทน ทั้งคู่มีรูปแบบเกลือที่คล้ายคลึงกันกับ Blowfish (ใช้คำนำหน้า $5$ สำหรับ SHA-256 และ $6$ สำหรับ SHA-512) นอกจากนี้ ยังมีพารามิเตอร์ rounds ที่เป็นตัวเลือกเพื่อบังคับให้มีการแฮชหลายรายการ

เกลือในตัวของมันเองนั้นสั้นกว่าเล็กน้อยเพียง 16 อักขระ แต่ต่างจาก Blowfish ตรงที่อนุญาตให้มากกว่าแค่ตัวอักษรและตัวเลข

ตัวอย่าง

echo 'SHA-256 (no rounds): ' . crypt('password-to-encrypt', '$5$YourSaltyStringz$');
echo 'SHA-512 (with rounds): ' . crypt('password-to-encrypt', '$6$rounds=1000$YourSaltyStringz$');

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

SHA-256 (no rounds): $5$YourSaltyStringz$td0INaoVoMPD4kieVrkGE67siKj3N8.HSff8ep0Ybs8SHA-512 (with rounds): $6$rounds=1000$YourSaltyStringz$A5UHscsEbSnPnaV6PmSF5T/MQK.Wc3klA.18c.gXG5pD0PVYSVr/7xwRu1XJyn8XpiMDNRTvpJm5S8DkmSywz1

คล้ายกับปักเป้า แฮชที่ได้จะมีเกลือเป็นส่วนหนึ่งของแฮชผลลัพธ์