Python驗(yàn)證用戶密碼是否規(guī)范腳本示例
代碼如下:
import re def check_password(password): # 檢查長度是否在6-20之間 if not 6 <= len(password) <= 20: return False # 檢查是否包含小寫字母 if not re.search(r'[a-z]',password): return False # 檢查是否包含大寫字母 if not re.search(r'[A-Z]',password): return False # 檢查是否包含數(shù)字 if not re.search(r'[0-9]',password): return False # 檢查是否包含特殊字符 if not re.search(r'[!@#$%^&*()_+-=,.<>?]',password): return False return True # 測(cè)試 password = "Abc123!@" print(check_password(password)) # True password = "abc" print(check_password(password)) # False
描述信息:
- 代碼中我們定義了一個(gè) check_password 函數(shù),該函數(shù)接受一個(gè)參數(shù) password,表示要驗(yàn)證的密碼
- 首先判斷密碼長度是否在6-20之間,如果不是,直接返回False
- 使用正則表達(dá)式 re.search("[a-z]", password) 判斷密碼中是否包含小寫字母,如果不包含,返回False
- 同理使用 re.search("[A-Z]", password) 判斷是否包含大寫字母,使用 re.search("[0-9]", password) 判斷是否包含數(shù)字, 如果不是,直接返回False
當(dāng)然, 你也可以使用 re.compile() 函數(shù)編譯了一個(gè)正則表達(dá)式,代碼如下:
import re password_pattern = re.compile(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+-=,.<>?])[A-Za-z\d!@#$%^&*()_+-=,.<>?]{6,20}$') # 測(cè)試 password = "Abc123!@" print(bool(password_pattern.match(password))) # True password = "abc" print(bool(password_pattern.match(password))) # False
描述信息:
- 正則表達(dá)式中我們使用了 (?=.[a-z]) 匹配至少一個(gè)小寫字母, (?=.[A-Z]) 匹配至少一個(gè)大寫字母, (?=.\d) 匹配至少一個(gè)數(shù)字,(?=.[!@#$%^&()_+-=,.<>?]) 匹配至少一個(gè)特殊字符, [A-Za-z\d!@#$%^&()_+-=,.<>?]{6,20}$ 匹配6-20位的字符串
- 使用 .match()方法來匹配字符串,如果匹配成功返回一個(gè)match object,否則返回None
附要求:6位密碼,含有數(shù)字、大小寫字母,及~!@中的特殊符號(hào)
import re while True: pwd = input('請(qǐng)輸入您的密碼:') r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@])[0-9a-zA-Z~!@]{6}$' result = re.match(r, pwd) if result is None: print('請(qǐng)輸入正確的密碼格式!') print('要求6位密碼,含有數(shù)字、大小寫字母,及~!@中的特殊符號(hào)!') else: break print('成功設(shè)置密碼!') print(f'您的密碼是:{pwd}')
(?=.*?\d) 檢查數(shù)字;(?=.*[a-z]) 檢查小寫英文字母;(?=.*[A-Z]) 檢查大寫英文字母;
測(cè)試:
# 若不限制長度 r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@]).*$'
總結(jié)
到此這篇關(guān)于Python驗(yàn)證用戶密碼是否規(guī)范腳本的文章就介紹到這了,更多相關(guān)Python驗(yàn)證用戶密碼規(guī)范內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 用python的哈希函數(shù)對(duì)密碼加密
- python 密碼學(xué)示例——理解哈希(Hash)算法
- python?密碼驗(yàn)證(滑塊驗(yàn)證)
- 詳解Python中的自定義密碼驗(yàn)證
- Python實(shí)現(xiàn)破解網(wǎng)站登錄密碼(帶token驗(yàn)證)
- python實(shí)現(xiàn)三次密碼驗(yàn)證的示例
- python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解
- Python使用selenium實(shí)現(xiàn)網(wǎng)頁用戶名 密碼 驗(yàn)證碼自動(dòng)登錄功能
- Python使用bcrypt?或?Passlib?對(duì)系統(tǒng)用戶密碼進(jìn)行哈希和驗(yàn)證處理操作
相關(guān)文章
Python Queue模塊詳細(xì)介紹及實(shí)例
這篇文章主要介紹了Python Queue模塊詳細(xì)介紹及實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-12-12淺談Keras的Sequential與PyTorch的Sequential的區(qū)別
這篇文章主要介紹了淺談Keras的Sequential與PyTorch的Sequential的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06python中matplotlib條件背景顏色的實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于python中matplotlib條件背景顏色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式
今天小編就為大家分享一篇Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12Google開源的Python格式化工具YAPF的安裝和使用教程
Google的開發(fā)者文檔中有一套Python的代碼書寫規(guī)范,而在GitHub上同樣開源了一款名為YAPF的命令行程序用作Python的格式化,下面我們就來看下這款Google開源的Python格式化工具YAPF的安裝和使用教程2016-05-05python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法
本篇文章主要介紹了python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Python爬蟲實(shí)例扒取2345天氣預(yù)報(bào)
本篇文章給大家詳細(xì)分析了通過Python爬蟲如何采集到2345的天氣預(yù)報(bào)信息,有興趣的朋友參考學(xué)習(xí)下吧。2018-03-03