Python編程快速上手——強口令檢測算法案例分析
本文實例講述了Python強口令檢測算法。分享給大家供大家參考,具體如下:
強口令檢測題目如下: 寫一個函數(shù),它使用正則表達式,確保傳入的口令字符串是強口令。強口令定義:長度不少于8個字符,同時包含大寫和小寫字符,至少含有一個數(shù)字??赡苄枰鄠€正則表達式來測試字符串,以保證其強度。思路如下: 分析題目得到: ? 程序需要編寫一個函數(shù) ? 用戶輸入強口令 ? 需要用正則表達式進行判定是否符合條件 因此代碼需要做以下幾點: ? 導入正則表達式庫 import re ? input()函數(shù)用于用戶輸入 ? 定義一個函數(shù) ? 函數(shù)需要包含正則表達式對象及判定條件 ? while循環(huán)重復輸入,重復調用函數(shù)進行判定 著重分析強口令的三個條件: ? 條件一:長度不少于8個字符。使用點-星(.*)匹配所有字符,加上括號形成單獨的分組,至少8個字符采用花括號{}匹配特定次數(shù),{8,}。 ? 條件二:同時包含大小寫。同時包含,即匹配至少一次或多次采用+,加號。大寫小寫字符針對英文,因此采用方括號[],自定義字符分類。[a-z]+[A-Z] ?條件三:至少含有一個數(shù)字。至少的含義依舊是匹配一次或多次,采用加號,+,。數(shù)字用方括號自定義字符分類[0-9]。+[0-9]以下是代碼import reprint('強口令要求:字符串長度不少于8個,同時包含大小寫,且至少含有一位數(shù)字。')strongStr = input('請輸入一個強口令:')def strongPassword(str): #定義正則表達式函數(shù) lengthRex = re.compile(r’(.*){8,}[a-z]+[A-Z]+[0-9]’) # 創(chuàng)建正則表達式對象 if lengthRex.search(str) == None: #如果字符串str中沒有找到該正則表達式模式,search()方法則返回None return False if lengthRex.search(str) == True: return Truewhile strongPassword(strongStr) == False: #判斷函數(shù)返回值是否為False,循環(huán)調用函數(shù)strongPassword() print(’口令強度不夠!請重新輸入:’) strongStr = input() #重新輸入更新字符變量 strongPassword(strongStr)#再次調用函數(shù)else: print(’Nice!強口令強度足夠,可以使用!’)輸出結果
PS:這里再為大家提供兩款相關在線工具供大家參考使用:
密碼安全性在線檢測:http://tools.jb51.net/password/my_password_safe
高強度密碼生成器:http://tools.jb51.net/password/CreateStrongPassword
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python Socket編程技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章:
1. idea設置提示不區(qū)分大小寫的方法2. IntelliJ IDEA設置默認瀏覽器的方法3. HTTP協(xié)議常用的請求頭和響應頭響應詳解說明(學習)4. CentOS郵件服務器搭建系列—— POP / IMAP 服務器的構建( Dovecot )5. IntelliJ IDEA創(chuàng)建web項目的方法6. .NET SkiaSharp 生成二維碼驗證碼及指定區(qū)域截取方法實現(xiàn)7. docker容器調用yum報錯的解決辦法8. VMware中如何安裝Ubuntu9. IntelliJ IDEA導入項目的方法10. django創(chuàng)建css文件夾的具體方法
