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)文章
python3實(shí)現(xiàn)字符串操作的實(shí)例代碼
這篇文章主要介紹了python3實(shí)現(xiàn)字符串操作的實(shí)例代碼,需要的朋友可以參考下2019-04-04
對(duì)Python強(qiáng)大的可變參數(shù)傳遞機(jī)制詳解
今天小編就為大家分享一篇對(duì)Python強(qiáng)大的可變參數(shù)傳遞機(jī)制詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python日期和時(shí)間完全指南與實(shí)戰(zhàn)
在軟件開發(fā)領(lǐng)域,?日期時(shí)間處理?是貫穿系統(tǒng)設(shè)計(jì)全生命周期的重要基礎(chǔ)能力,本文將深入解析Python日期時(shí)間的?七大核心模塊?,通過?企業(yè)級(jí)代碼案例?揭示最佳實(shí)踐,感興趣的朋友一起看看吧2025-05-05
Pandas 處理DataFrame中的inf值實(shí)現(xiàn)
Inf 表示正無窮大或負(fù)無窮大,通常是在數(shù)學(xué)計(jì)算中產(chǎn)生的結(jié)果,本文主要介紹了Pandas 處理DataFrame中的inf值實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
python實(shí)現(xiàn)對(duì)變位詞的判斷方法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)對(duì)變位詞的判斷方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
Pytorch中求模型準(zhǔn)確率的兩種方法小結(jié)
這篇文章主要介紹了Pytorch中求模型準(zhǔn)確率的兩種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
Django路由匹配調(diào)試與排錯(cuò)指南分享
這篇文章主要介紹了Django路由匹配調(diào)試與排錯(cuò)指南,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
python實(shí)現(xiàn)人臉識(shí)別代碼
這篇文章主要介紹了python實(shí)現(xiàn)人臉識(shí)別代碼,還是比較不錯(cuò)的,這里分享個(gè)大家,共需要的朋友參考。2017-11-11

