Giới thiệu
Hàm crypt() băm chuỗi sử dụng các thuật toán: DES, Blowfish, MD5, SHA-256, SHA-512. Hành vi khác nhau tùy hệ điều hành và hằng số có sẵn.
CẢNH BÁO: crypt() phức tạp và dễ sai. KHÔNG KHUYẾN KHÍCH dùng cho mật khẩu mới. Hãy dùng password_hash() (BCRYPT/ARGON2) - tự động xử lý salt, cost, algorithm.
Các hằng số thuật toán (nếu hỗ trợ)
CRYPT_STD_DES- DES chuẩn, salt 2 ký tự (./0-9A-Za-z)CRYPT_EXT_DES- DES mở rộng, salt 9 ký tự (_ + 4 byte count + 4 byte salt)CRYPT_MD5- MD5, salt 12 ký tự bắt đầu$1$CRYPT_BLOWFISH- Blowfish, salt$2a$/$2x$/$2y$+ cost 2 chữ số + 22 ký tựCRYPT_SHA_256- SHA-256, salt 16 ký tự bắt đầu$5$CRYPT_SHA_512- SHA-512, salt 16 ký tự bắt đầu$6$
Cú pháp
crypt(string $string, string $salt = ""): string
Tham số
- string - Chuỗi cần băm (bắt buộc).
- salt (tùy chọn) - Salt xác định thuật toán và giá trị. Nếu bỏ qua, PHP tự tạo (không khuyến khích).
Giá trị trả về
Trả về chuỗi đã băm (bao gồm salt và algorithm identifier). Trả về chuỗi < 13 ký tự và khác salt nếu thất bại.
Ví dụ
<?php
if (CRYPT_STD_DES == 1) {
echo "DES supported = " . crypt('demo', 'st') . "\n";
} else {
echo "DES not supported!";
}
?>
Kết quả (ví dụ):
DES supported = st7zBedJadRn2
Kết quả thực tế phụ thuộc vào hệ thống.