Python編程快速上手——強(qiáng)口令檢測算法案例分析
本文實例講述了Python強(qiáng)口令檢測算法。分享給大家供大家參考,具體如下:
強(qiáng)口令檢測
題目如下:
- 寫一個函數(shù),它使用正則表達(dá)式,確保傳入的口令字符串是強(qiáng)口令。強(qiáng)口令定義:長度不少于8個字符,同時包含大寫和小寫字符,至少含有一個數(shù)字。可能需要多個正則表達(dá)式來測試字符串,以保證其強(qiáng)度。
思路如下:
- 分析題目得到:
– 程序需要編寫一個函數(shù)
– 用戶輸入強(qiáng)口令
– 需要用正則表達(dá)式進(jìn)行判定是否符合條件 - 因此代碼需要做以下幾點(diǎn):
– 導(dǎo)入正則表達(dá)式庫 import re
– input()函數(shù)用于用戶輸入
– 定義一個函數(shù)
– 函數(shù)需要包含正則表達(dá)式對象及判定條件
– while循環(huán)重復(fù)輸入,重復(fù)調(diào)用函數(shù)進(jìn)行判定
- 著重分析強(qiáng)口令的三個條件:
– 條件一:長度不少于8個字符。使用點(diǎn)-星(.*)匹配所有字符,加上括號形成單獨(dú)的分組,至少8個字符采用花括號{}匹配特定次數(shù),{8,}。
– 條件二:同時包含大小寫。同時包含,即匹配至少一次或多次采用+,加號。大寫小寫字符針對英文,因此采用方括號[],自定義字符分類。[a-z]+[A-Z]
–條件三:至少含有一個數(shù)字。至少的含義依舊是匹配一次或多次,采用加號,+,。數(shù)字用方括號自定義字符分類[0-9]。+[0-9]
以下是代碼
import re print("強(qiáng)口令要求:字符串長度不少于8個,同時包含大小寫,且至少含有一位數(shù)字。") strongStr = input("請輸入一個強(qiáng)口令:") def strongPassword(str): #定義正則表達(dá)式函數(shù) lengthRex = re.compile(r'(.*){8,}[a-z]+[A-Z]+[0-9]') # 創(chuàng)建正則表達(dá)式對象 if lengthRex.search(str) == None: #如果字符串str中沒有找到該正則表達(dá)式模式,search()方法則返回None return False if lengthRex.search(str) == True: return True while strongPassword(strongStr) == False: #判斷函數(shù)返回值是否為False,循環(huán)調(diào)用函數(shù)strongPassword() print('口令強(qiáng)度不夠!請重新輸入:') strongStr = input() #重新輸入更新字符變量 strongPassword(strongStr)#再次調(diào)用函數(shù) else: print('Nice!強(qiáng)口令強(qiáng)度足夠,可以使用!')
輸出結(jié)果
PS:這里再為大家提供兩款相關(guān)在線工具供大家參考使用:
密碼安全性在線檢測:
http://tools.jb51.net/password/my_password_safe
高強(qiáng)度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
- Python實現(xiàn)的密碼強(qiáng)度檢測器示例
- python使用正則表達(dá)式檢測密碼強(qiáng)度源碼分享
- Python實現(xiàn)在線暴力破解郵箱賬號密碼功能示例【測試可用】
- 菜鳥使用python實現(xiàn)正則檢測密碼合法性
- Python簡單生成8位隨機(jī)密碼的方法
- python生成指定長度的隨機(jī)數(shù)密碼
- python實現(xiàn)隨機(jī)密碼字典生成器示例
- python 腳本生成隨機(jī) 字母 + 數(shù)字密碼功能
- python生成隨機(jī)密碼或隨機(jī)字符串的方法
- Python隨機(jī)生成帶特殊字符的密碼
- python隨機(jī)生成指定長度密碼的方法
- Python編程生成隨機(jī)用戶名及密碼的方法示例
相關(guān)文章
anaconda中Conda創(chuàng)建虛擬環(huán)境的實現(xiàn)步驟
在Anaconda中,可以使用conda命令來創(chuàng)建和管理虛擬環(huán)境,本文主要介紹了anaconda中Conda創(chuàng)建虛擬環(huán)境的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2023-12-12Python使用Selenium實現(xiàn)淘寶搶單的流程分析
這篇文章主要介紹了Python使用Selenium實現(xiàn)淘寶搶單的流程分析,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06圖文詳解Python中如何簡單地解決Microsoft?Visual?C++?14.0報錯
有的時候安裝python依賴包的時候,報錯信息"Microsoft?visual?c++?14.0?is?required"的解決辦法,下面這篇文章主要給大家介紹了關(guān)于Python中如何簡單地解決Microsoft?Visual?C++?14.0報錯的相關(guān)資料,需要的朋友可以參考下2023-02-02python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用指南
這篇文章主要介紹了python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用方法,非常的實用,有需要的朋友可以參考下2014-09-09