Hướng dẫn how to validate password with special characters in php? - Làm thế nào để xác thực mật khẩu với các ký tự đặc biệt trong php?

Tôi hiện đang thực hiện một số bài kiểm tra với Regex. Tôi đã có một bài tập yêu cầu kiểm tra mật khẩu mạnh, điều đó có nghĩa là nó nên có: ít nhất một số, một chữ cái viết thường, một chữ cái viết hoa, không có khoảng trắng và ít nhất một ký tự không phải là chữ cái hoặc số. Và nó nên nằm trong khoảng 8-16 ký tự.

Tôi đã viết mã này:

     

Hai người cuối cùng nên phù hợp nhưng họ thất bại. Tôi nghĩ rằng vấn đề đứng ở

[?=\w*[^0-9A-Za-z]]

được cho là phù hợp với mô hình để có ít nhất một ký tự không phải là một chữ cái hoặc một số, nhưng tôi không thể hiểu tại sao. Tôi biết mật khẩu mạnh này được giải quyết trên internet nhưng đó không phải là vấn đề của tôi. Vấn đề của tôi là tại sao phần công việc đó không làm những gì được cho là phải làm.

hỏi ngày 26 tháng 2 năm 2017 lúc 10:17Feb 26, 2017 at 10:17

10

Bạn có thể chia regex của bạn thành các séc khác nhau.

Nó sẽ cho phép bạn viết các điều kiện dễ đọc hơn và hiển thị các thông báo lỗi cụ thể. Mặc dù, các mẫu RegEXP sẽ dễ viết hơn và hiểu.

I E. :

$errors = array[];
if [strlen[$pass] < 8 || strlen[$pass] > 16] {
    $errors[] = "Password should be min 8 characters and max 16 characters";
}
if [!preg_match["/\d/", $pass]] {
    $errors[] = "Password should contain at least one digit";
}
if [!preg_match["/[A-Z]/", $pass]] {
    $errors[] = "Password should contain at least one Capital Letter";
}
if [!preg_match["/[a-z]/", $pass]] {
    $errors[] = "Password should contain at least one small Letter";
}
if [!preg_match["/\W/", $pass]] {
    $errors[] = "Password should contain at least one special character";
}
if [preg_match["/\s/", $pass]] {
    $errors[] = "Password should not contain any white space";
}

if [$errors] {
    foreach [$errors as $error] {
        echo $error . "\n";
    }
    die[];
} else {
    echo "$pass => MATCH\n";
}

Hy vọng nó giúp.

sau đó

9.2775 huy hiệu vàng28 Huy hiệu bạc40 Huy hiệu đồng5 gold badges28 silver badges40 bronze badges

Đã trả lời ngày 26 tháng 2 năm 2017 lúc 10:41Feb 26, 2017 at 10:41

JazzjazzJazZ

4.2942 Huy hiệu vàng19 Huy hiệu bạc39 Huy hiệu đồng2 gold badges19 silver badges39 bronze badges

2

Bạn có thể thử điều này:

^[?=.*\d][?=.*[a-z]][?=.*[A-Z]][?!.* ][?=.*[^a-zA-Z0-9]].{8,16}$

Nó bao gồm tất cả các yêu cầu của bạn

Giải trình

  1. [?=.*\d] ít nhất một chữ số
  2. [?=\w*[^0-9A-Za-z]]
    
    0 Ít nhất một chữ cái thường
  3. [?=\w*[^0-9A-Za-z]]
    
    1 ít nhất một chữ cái trên
  4. [?=\w*[^0-9A-Za-z]]
    
    2 Không có không gian
  5. [?=\w*[^0-9A-Za-z]]
    
    3 Ít nhất một nhân vật ngoại trừ
    [?=\w*[^0-9A-Za-z]]
    
    4
  6. [?=\w*[^0-9A-Za-z]]
    
    5 từ 8 đến 16 ký tự

Mã mẫu:


Chạy nó ở đây

Đã trả lời ngày 26 tháng 2 năm 2017 lúc 10:45Feb 26, 2017 at 10:45

Mustofa Rizwanmustofa RizwanMustofa Rizwan

10.1k2 Huy hiệu vàng25 Huy hiệu bạc42 Huy hiệu đồng2 gold badges25 silver badges42 bronze badges

5

^[?=.*?[A-Z]][?=.*?[a-z]][?=.*?[0-9]][?=.*?[#?!@$%^&*-]].{8,}\S+$

//The rule is at least
   one upper case, one lower case, one digit[0-9], 
   one special character[#?!@$%^&*-] and the minimum length should be 8.

Đã trả lời ngày 26 tháng 2 năm 2017 lúc 10:40Feb 26, 2017 at 10:40

SrikrushnasrikrushnaSrikrushna

3.7751 Huy hiệu vàng36 Huy hiệu bạc45 Huy hiệu đồng1 gold badge36 silver badges45 bronze badges

Sử dụng Regex đơn giản này để kiểm tra mật khẩu mạnh

/[?=^.{8,}$][?=.{0,}[A-Z]][?=.{0,}[a-z]][?=.{0,}\W][?=.{0,}\d]/g

Javascript:

var password = "Abcdef@1234"
var passwordRegex = /[?=^.{8,}$][?=.{0,}[A-Z]][?=.{0,}[a-z]][?=.{0,}\W][?=.{0,}\d]/g

var isStrongPassword = passwordRegex.test[password]

console.log[isStrongPassword, ""]
  1. Độ dài tối thiểu 8 ký tự
  2. ít nhất 1 chữ hoa
  3. ít nhất 1 chữ thường
  4. ít nhất 1 nhân vật đặc biệt
  5. ít nhất 1 chữ số

Đã trả lời ngày 23 tháng 9 năm 2020 lúc 10:26Sep 23, 2020 at 10:26

________số 8

Thêm ký tự đặc biệt theo yêu cầu.

Kiểm tra mã trên

  • Ít nhất 1 ký tự viết hoa
  • Ít nhất 1 ký tự viết thường
  • Ít nhất 1 chữ số
  • Ít nhất 1 nhân vật đặc biệt

Bấm vào đây để kiểm tra

Đã trả lời ngày 10 tháng 4 lúc 10:50Apr 10 at 10:50

Làm thế nào để xác nhận mật khẩu trong PHP?

Trong PHP, chúng tôi có thể xác nhận cường độ mật khẩu bằng hàm preg_match [] ...
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 trường hợp 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 ..

Regex cho các nhân vật đặc biệt là gì?

Các ký tự Regex đặc biệt: Những nhân vật này có ý nghĩa đặc biệt trong Regex [sẽ được thảo luận dưới đây]:., +, *,?, ^, $, [,], [,], {,}, |, \.Trình tự thoát [\ char]: Để phù hợp với một ký tự có ý nghĩa đặc biệt trong regex, bạn cần sử dụng tiền tố trình tự thoát với dấu gạch chéo ngược [\].. , + , * , ? , ^ , $ , [ , ] , [ , ] , { , } , | , \ . Escape Sequences [\char]: To match a character having special meaning in regex, you need to use a escape sequence prefix with a backslash [ \ ].

Làm thế nào để bạn xác nhận một mật khẩu?

Các tham số sau đây thường được sử dụng để xác thực mật khẩu dưới mọi hình thức ...
Chỉ các đầu vào chữ và số được chấp nhận trong trường mật khẩu ..
Nó sẽ bắt đầu với bảng chữ cái chữ hoa ..
Ít nhất một mật khẩu bảng chữ cái chữ hoa ..
Mật khẩu phải có độ dài cụ thể ..
Một giá trị số phải được sử dụng trong mật khẩu ..

Làm cách nào để lấy mật khẩu và xác nhận mật khẩu trong PHP?

Mật khẩu và xác nhận xác nhận mật khẩu trong câu trả lời của mã PHP..
if [$ _post ["password"] === $ _post ["isprible_password"]] {.
// thành công!.
khác {.
// thất bại :[.

Chủ Đề