Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mengesahkan format kata laluan dengan ungkapan biasa PHP

Bagaimana untuk mengesahkan format kata laluan dengan ungkapan biasa PHP

PHPz
PHPzasal
2023-06-24 10:28:402361semak imbas

Pengesahan kata laluan sentiasa menjadi bahagian yang sangat penting dalam pembangunan web. Untuk memastikan kata laluan yang dimasukkan oleh pengguna memenuhi keperluan keselamatan, kami biasanya perlu menentukan beberapa peraturan format kata laluan dan mengesahkan kata laluan yang dimasukkan oleh pengguna. Dalam PHP, menggunakan ungkapan biasa ialah penyelesaian biasa Di bawah ini kami akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan format kata laluan.

  1. Keperluan panjang kata laluan

Panjang kata laluan ialah penunjuk penting kekuatan kata laluan Biasanya kami akan menetapkan keperluan panjang kata laluan minimum kepada 6 hingga 8 aksara. Menggunakan ungkapan biasa PHP, kita boleh menggunakan kod berikut untuk mengesahkan panjang kata laluan:

$password = "u5er#123";
if (preg_match('/.{6,8}/', $password)) {
    echo "密码合法";
} else {
    echo "密码长度要求为6-8个字符";
}

Kod di atas menggunakan sintaks "{}" dalam ungkapan biasa untuk mentakrifkan julat panjang kata laluan. Antaranya, "6,8" bermaksud panjang kata laluan sekurang-kurangnya 6 aksara dan paling banyak 8 aksara.

  1. Kata laluan perlu mengandungi nombor, huruf dan simbol

Untuk menjadikan kata laluan lebih kompleks dan sukar diteka, kami biasanya memerlukan kata laluan mengandungi nombor, huruf dan simbol , dsb. jenis aksara. Menggunakan ungkapan biasa PHP, kami boleh menggunakan kod berikut untuk mengesahkan sama ada kata laluan mengandungi nombor, huruf dan simbol:

$password = "u5er#123";
if (preg_match('/^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$%^&*]).{6,8}$/', $password)) {
    echo "密码合法";
} else {
    echo "密码需要包含数字、字母和符号";
}

Kod di atas menggunakan gabungan berbilang ungkapan dalam ungkapan biasa untuk mengesahkan nombor dan huruf masing-masing kehadiran simbol.

  • ^(?!.[W_])(?=.[a-z])(?=.[A-Z])(?=. d).{6,8}$

Pernyataan ini boleh memadankan kata laluan dengan panjang sekurang-kurangnya 6 aksara dan panjang maksimum 8 aksara. Kata laluan ini perlu mengandungi sekurang-kurangnya satu huruf kecil, satu huruf besar dan satu nombor. Semua aksara bukan abjad angka dikecualikan, dan huruf besar diabaikan.

  1. Kata laluan tidak boleh mengandungi nama pengguna atau perkataan kamus biasa

Untuk meningkatkan lagi keselamatan kata laluan, kami biasanya memerlukan kata laluan tidak boleh mengandungi nama akaun pengguna atau kamus biasa perbendaharaan kata perkataan. Menggunakan ungkapan biasa PHP, kami boleh menggunakan kod berikut untuk mengesahkan sama ada kata laluan mengandungi akaun pengguna atau perkataan kamus biasa:

$username = "user";
$password = "user@123";
if (preg_match("/^.*(?=.{6,})(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$/", $password) && !(preg_match("/$username/i", $password))) {
    echo "密码符合要求";
} else {
    echo "密码必须包含数字、小写字母、大写字母、符号,且不能包含用户名";
}

Kod di atas menggunakan gabungan dua ungkapan biasa untuk mengesahkan kesahihan kata laluan, yang pertama Ungkapan biasa pertama mengesahkan bahawa kata laluan mematuhi keperluan format umum, manakala ungkapan biasa kedua mengesahkan bahawa kata laluan mengandungi akaun pengguna.

Ringkasan

Pengesahan kata laluan adalah bahagian yang sangat penting dalam pembangunan web dengan menambah panjang kata laluan, jenis aksara, semakan nama pengguna, semakan perbendaharaan kata biasa dan kaedah pengesahan lain diperiksa. Logik pengesahan kata laluan ini boleh dilaksanakan dengan mudah menggunakan ungkapan biasa PHP, meningkatkan keselamatan dan kebolehpercayaan aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan format kata laluan dengan ungkapan biasa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn