Cập nhật ngày 27/12/2021
Trong PHP, muốn sử dụng mã hoá Bcrypt ta sẽ dùng hàm password_hash(). Hàm này thường dùng để mã hoá mật khẩu.
Ngoài mã hoá Bcrypt hàm này còn hỗ trợ mã hoá Argon2i và Argon2id.
password_hash ( string $password , int $algo [, array $options ] ) : string
Trong đó:
- $password: chuỗi cần mã hoá
- $algo: Phương thức mã hoá (mặc định là Bcrypt). (xem thêm)
- $options: mảng tùy chọn (xem thêm)
Kết quả:
Trả về chuỗi mã hoá hoặc FALSE nếu thất bại.
Ví dụ:
<?php $options = [ 'cost' => 12, ]; echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options);
So sánh 2 chuỗi đã mã hoá?
Đồi khi ta buồn ta chả biết làm gì rồi ngồi vu vơ nghĩ về Bcrypt, khi mà cùng 1 chuỗi nó mã hoá ra nhiều chuỗi mới khác nhau thì làm sao so sánh?
Nhưng không sao, PHP đã cung cấp cho ta 1 hàm giúp làm việc này đó là password_verify().
password_verify ( string $password , string $hash ) : bool
Trong đó:
- $password: chuỗi gốc cần so sánh
- $hash: chuỗi đã má hoá
Kết quả:
TRUE nếu khớp, FALSE nếu không khớp.
Ví dụ:
<?php $hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq'; if (password_verify('rasmuslerdorf', $hash)) { echo 'Password is valid!'; } else { echo 'Invalid password.'; }