Computer >> Máy Tính >  >> Lập trình >> PHP

Mã hóa mật khẩu trong PHP

Do Blowfish có lỗ hổng trước phiên bản PHP 5.3.7, nên bạn nên sử dụng SHA-256 hoặc SHA-512 để thay thế. Cả hai đều có định dạng muối tương tự như của Blowfish (sử dụng tiền tố $ 5 $ cho SHA-256 và $ 6 $ cho SHA-512). Ngoài ra, nó cũng chứa tham số vòng tùy chọn để buộc nhiều băm.

Riêng muối thì ngắn hơn một chút, chỉ 16 ký tự nhưng không giống như Blowfish, nó cho phép nhiều hơn chỉ các ký tự chữ và số.

Ví dụ

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

Đầu ra

Điều này sẽ tạo ra kết quả sau -

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

Tương tự như Blowfish, các hàm băm kết quả sẽ chứa muối như một phần của hàm băm kết quả.