国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

php使用正則驗證密碼字段的復雜強度原理詳細講解 原創

瀏覽:123日期:2022-06-05 18:37:30
目錄
  • 一. php密碼復雜示例
  • 二. 高級版簡單寫法
  • 三. 總結

密碼涉及到安全問題,簡單的密碼很容易被暴力破解,所以密碼設計的復雜程序尤為重要。通常情況下密碼由大小寫字母、數字、特殊符號組成。比如前端需要用戶設置密碼時,可以使用javascript進行正則判斷,密碼不符合要求時彈窗或輸出提示,那就不要使用php等后端語言了?不使用后端語言是不安全的,因為其他人可以直接使用postman等自定義參數提交你的URL接口。一般情況下前端可不做js判斷,使用ajax提交php后端程序接口,由后端判斷后返回json數據,進行用戶密碼復雜程序提示。

一. php密碼復雜示例

<?php
function check_password($password) {
    $pattern1="/[A-Z]/";
    $pattern2="/[a-z]/";
    $pattern3="/[0-9]/";
    $pattern4="/[_.\-#$%]/";

    if(strlen($password)<6) {
echo "密碼需要至少包含6個字符";   
exit;
    }
    if(!preg_match($pattern1,$password)) {
echo "密碼需要至少一個大寫字母";
exit;
    }
    if(!preg_match($pattern2,$password)) {
echo "密碼需要至少一個小寫字母";
exit;
    }
    if(!preg_match($pattern3,$password)) {
echo "密碼需要至少一個數字";
exit;
    }
    if(!preg_match($pattern4,$password)) {
echo "密碼需要至少一個特殊符號:_.-#$%";
exit;
    }
    echo "密碼符合要求";
}
echo check_password("jb51.net");

輸出結果:

密碼需要至少一個大寫字母

示例代碼由淺入深詳細講解:

1. echo check_password('jb51.net');  echo—php字符串打印輸出,運行check_password()方法,字符串參數—jb51.net;

2. $pattern1='/[A-Z]/'; 變量$pattern1賦值,后面的正則表達式規則:A-Z是指26個大寫英文字母,放在[]中的指其中一個,兩邊的兩個斜杠"/"表示正則表達式的定界符;

3. $pattern2='/[a-z]/'; a-z是指26個小寫英文字母;

4. $pattern3='/[0-9]/'; 0-9是指0到9共10個數字;

5. $pattern4='/[_.\-#$%]/'; _.\-#$%是指字符_.-#$%,細心的朋友發現了嗎,中間有個反斜杠\,這個是特殊字符的轉義。通常正則表達式中匹配特殊字符"\"、"?"、"*"、"^"、"$"、"+"、"("、")"、"|"、"{"、"[",都需要用反斜杠("\")進行轉義;

6. 字符串'jb51.net'大于6個字符,strlen() 函數返回字符串的長度,不報錯;

7. preg_match('正則表達式','需要匹配的字符串') 函數用于執行一個正則表達式匹配,preg_match還有其他的參數,有需要查看相關說明,preg_match的值將是 0 次(不匹配)或 1 次;

8. 從上往下運行到preg_match($pattern1,$password)時,preg_match匹配到'jb51.net'沒有大寫字母,值為0,加上'!'后值為真,輸出"密碼需要至少一個大寫字母!",'exit'退出腳本執行。

二. 高級版簡單寫法

上面的示例朋友們可能發現有4個規則,進行了5次判斷,考慮到運行效率和代碼簡潔,高級版簡單寫法如下:

<?php
function check_password($password) {
    $pattern5="/^(?![a-zA-Z_.\-#$%]+$)(?![a-zA-Z0-9]+$)(?![\d_.\-#$%]+$)(?![a-z\d_.\-#$%]+$)(?![A-Z\d_.\-#$%]+$)[\w.\-#$%]{6,30}$/";
    if(!preg_match($pattern5,$password)) {
echo "密碼不符合要求!";
exit;
    }
    echo "密碼符合要求";
}
echo check_password("jb51.net");

輸出結果:

密碼不符合要求!

示例代碼由淺入深詳細講解:

正則表達式講解,\w匹配一個英文字母、數字或下劃線;\w等價于[0-9a-zA-Z_];\d匹配一個數字;等價于[0-9];.\-#$%見上面講解;{6,30}對前面數量控制,表示是6到30個;?![a-zA-Z_.\-#$%]+$指不包含字符串'a-zA-Z_.\-#$%'。

三. 總結

本文講解php使用正則驗證密碼字段的復雜度,由淺入深簡單易懂,看懂的朋友可以舉一反三。比如使用preg_match("/^[0-9]+$/", $password)) 驗證全是數字,注意前面沒有'!'。比如使用return json_encode(['code' => 0, 'msg' => '提示']);返回給前端json格式數據,供前端ajax回調處理。

到此這篇關于php使用正則驗證密碼字段的復雜度的文章就介紹到這了,更多相關php正則驗證密碼強度內容請搜索以前的文章或繼續瀏覽下面的相關文章。希望大家以后多多支持!

標簽: PHP
主站蜘蛛池模板: 高跟丝袜美女一级毛片 | 国产精品亚洲一区二区三区 | 黄色一级毛片网站 | aaaaaa毛片免费看 | aaa一级毛片 | 国产女王女m视频vk 国产女王丨vk | 亚洲天堂在线观看视频 | 欧美性猛交xxx免费看人妖 | 亚洲国产精品大秀在线播放 | 久久国产精品岛国搬运工 | 韩国日本三级在线观看 | 欧美另类精品一区二区三区 | 久久99精品久久久久久国产越南 | 日韩一级一欧美一级国产 | 91精品国产手机在线版 | 久久久久久毛片免费观看 | 久久综合久久久久 | 免费日韩一级片 | 全部精品孕妇色视频在线 | 国内精品一区二区2021在线 | 成人丝袜激情一区二区 | 国产亚洲精品日韩已满十八 | 成人欧美精品大91在线 | 久久色婷婷 | 欧美性欲视频 | 青草欧美| 久久精品国产线看观看亚洲 | 国产三级免费观看 | 91国高清视频 | 欧美高清在线精品一区二区不卡 | 俄罗斯三级毛片 | 亚洲色吧| 久久99国产亚洲精品 | 国产午夜亚洲精品理论片不卡 | 久久久网久久久久合久久久久 | 国产精品亚洲综合天堂夜夜 | 欧美视频一区二区三区在线观看 | 国产男女爽爽爽爽爽视频 | 加勒比色久综合在线 | 黄毛片一级毛片 | 亚洲日本高清成人aⅴ片 |