[Php 5> = 5.5.0, Php 7, Php 8]
password_verify - xác minh rằng mật khẩu khớp với băm — Verifies that a password matches a hash
Sự mô tả
password_verify [chuỗi $password
, chuỗi $hash
]: bool[string $password
, string $hash
]: bool
Lưu ý rằng password_hash [] trả về thuật toán, chi phí và muối như một phần của băm đã trả lại. Do đó, tất cả thông tin cần thiết để xác minh hàm băm được bao gồm trong đó. Điều này cho phép chức năng xác minh xác minh băm mà không cần lưu trữ riêng cho thông tin muối hoặc thuật toán.password_hash[] returns the algorithm, cost and salt as part of the returned hash. Therefore, all information that's needed to verify the hash is included in it. This allows the verify function to verify the hash without needing separate storage for the salt or algorithm information.
Chức năng này là an toàn trước các cuộc tấn công thời gian.
Thông số
password
Mật khẩu của người dùng.
hash
Một hàm băm được tạo bởi password_hash [].password_hash[].
Trả về giá trị
Trả về true
nếu mật khẩu và băm phù hợp, hoặc false
khác.true
if the password and hash match, or false
otherwise.
Ví dụ
Ví dụ #1 password_verify [] Ví dụpassword_verify[] example
0
1Ví dụ trên sẽ xuất ra:
Xem thêm
- password_hash [] - Tạo mật khẩu băm
- »& Nbsp; triển khai userland
- natri_crypto_pwhash_str_verify [] - xác minh rằng mật khẩu khớp với băm
Khi người dùng cung cấp mật khẩu tài khoản của họ, luôn nên xác nhận đầu vào. Xác thực cường độ mật khẩu là rất hữu ích để kiểm tra xem mật khẩu có mạnh không. Mật khẩu mạnh làm cho tài khoản người dùng bảo mật và giúp ngăn chặn hack tài khoản.
Sử dụng regex [biểu thức chính quy], bạn có thể dễ dàng xác nhận cường độ mật khẩu trong PHP. Trong mã ví dụ, chúng tôi sẽ chỉ cho bạn cách kiểm tra cường độ mật khẩu và xác thực mật khẩu mạnh trong PHP bằng Regex.
Đoạn mã sau đây xác thực mật khẩu bằng hàm preg_match [] trong PHP với biểu thức thông thường, để kiểm tra xem nó có mạnh và khó đoán hay không.preg_match[] function in PHP with Regular Expression, to check whether it is strong and difficult to guess.
- Mật khẩu phải có độ dài ít nhất 8 ký tự.
- Mật khẩu phải bao gồm ít nhất một chữ cái trên.
- Mật khẩu phải bao gồm ít nhất một số.
- Mật khẩu phải bao gồm ít nhất một ký tự đặc biệt.
// Given password
$password = 'user-input-pass';// Validate password strength
$uppercase = preg_match['@[A-Z]@', $password];
$lowercase = preg_match['@[a-z]@', $password];
$number = preg_match['@[0-9]@', $password];
$specialChars = preg_match['@[^\w]@', $password];if[!
$uppercase || !$lowercase || !$number || !$specialChars || strlen[$password]
Nhưng khi tôi nhận được các biến từ người dùng, nó không an toàn. Làm thế nào tôi có thể sử dụng '?' Và chuẩn bị truy vấn và kiểm tra kết quả?
How can I use '?' and prepare the query and check results?
Những gì tôi đã thử:
Kiểm tra tên người dùng và mật khẩu với
bind_param
Nội dung này, cùng với bất kỳ mã nguồn và tệp liên quan nào, được cấp phép theo giấy phép mở của Dự án Mã [CPOL]
Codeproject, 20 Bay Street, Tầng 11 Toronto, Ontario, Canada M5J 2N8 +1 [416] 849-8900