Python驗(yàn)證用戶(hù)密碼是否規(guī)范腳本示例
代碼如下:
import re
def check_password(password):
# 檢查長(zhǎng)度是否在6-20之間
if not 6 <= len(password) <= 20:
return False
# 檢查是否包含小寫(xiě)字母
if not re.search(r'[a-z]',password):
return False
# 檢查是否包含大寫(xiě)字母
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)證的密碼
- 首先判斷密碼長(zhǎng)度是否在6-20之間,如果不是,直接返回False
- 使用正則表達(dá)式 re.search("[a-z]", password) 判斷密碼中是否包含小寫(xiě)字母,如果不包含,返回False
- 同理使用 re.search("[A-Z]", password) 判斷是否包含大寫(xiě)字母,使用 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è)小寫(xiě)字母, (?=.[A-Z]) 匹配至少一個(gè)大寫(xiě)字母, (?=.\d) 匹配至少一個(gè)數(shù)字,(?=.[!@#$%^&()_+-=,.<>?]) 匹配至少一個(gè)特殊字符, [A-Za-z\d!@#$%^&()_+-=,.<>?]{6,20}$ 匹配6-20位的字符串
- 使用 .match()方法來(lái)匹配字符串,如果匹配成功返回一個(gè)match object,否則返回None
附要求:6位密碼,含有數(shù)字、大小寫(xiě)字母,及~!@中的特殊符號(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ù)字、大小寫(xiě)字母,及~!@中的特殊符號(hào)!')
else:
break
print('成功設(shè)置密碼!')
print(f'您的密碼是:{pwd}')(?=.*?\d) 檢查數(shù)字;(?=.*[a-z]) 檢查小寫(xiě)英文字母;(?=.*[A-Z]) 檢查大寫(xiě)英文字母;
測(cè)試:

# 若不限制長(zhǎng)度
r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@]).*$'總結(jié)
到此這篇關(guān)于Python驗(yàn)證用戶(hù)密碼是否規(guī)范腳本的文章就介紹到這了,更多相關(guān)Python驗(yàn)證用戶(hù)密碼規(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è)用戶(hù)名 密碼 驗(yàn)證碼自動(dòng)登錄功能
- Python使用bcrypt?或?Passlib?對(duì)系統(tǒng)用戶(hù)密碼進(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ì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
python中matplotlib條件背景顏色的實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于python中matplotlib條件背景顏色的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式
今天小編就為大家分享一篇Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Python使用XlsxWriter庫(kù)操作Excel詳解
XlsxWriter 是一個(gè)功能強(qiáng)大的 Python 模塊,專(zhuān)門(mén)用于生成 Microsoft Excel 2007及以上版本的電子表格文件,本文主要為大家介紹了如何使用XlsxWriter庫(kù)進(jìn)行Excel基本操作,需要的可以參考下2023-11-11
Google開(kāi)源的Python格式化工具YAPF的安裝和使用教程
Google的開(kāi)發(fā)者文檔中有一套Python的代碼書(shū)寫(xiě)規(guī)范,而在GitHub上同樣開(kāi)源了一款名為YAPF的命令行程序用作Python的格式化,下面我們就來(lái)看下這款Google開(kāi)源的Python格式化工具YAPF的安裝和使用教程2016-05-05
python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法
本篇文章主要介紹了python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Python爬蟲(chóng)實(shí)例扒取2345天氣預(yù)報(bào)
本篇文章給大家詳細(xì)分析了通過(guò)Python爬蟲(chóng)如何采集到2345的天氣預(yù)報(bào)信息,有興趣的朋友參考學(xué)習(xí)下吧。2018-03-03

