#!/usr/bin/env?python????
#?-*-?coding:?utf-8?-*-
#1.?密碼長度應該大于或等于8位
#2.?密碼必須包含數字、字母及特殊字符三種組合
nums?=?'0123456789'
chars1?=?'abcdefghijklmnopqrstuvwxyz'
chars2?=?'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
symbols?=?r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''def?check_length(pwd):if?len(pwd)?<?8:print("密碼至少需要8位")return?Falseelse:return?Truedef?check_nums(pwd):for?each?in?pwd:if?each?in?nums:return?True????print("密碼應包含數字")return?Falsedef?check_chars1(pwd):for?each?in?pwd:if?each?in?chars1:return?Trueprint("密碼應包含小寫字母")return?Falsedef?check_chars2(pwd):for?each?in?pwd:if?each?in?chars2:return?Trueprint("密碼應包含大寫字母")return?Falsedef?check_symbols(pwd):for?each?in?pwd:if?each?in?symbols:return?Trueprint("密碼應包含符號")return?Falsedef?check_password(passwd):#?判斷長度length?=?check_length(passwd)#?判斷是否包含數字nums?=?check_nums(passwd)#?判斷是否包含小寫字母chars1?=?check_chars1(passwd)#?判斷是否包含大寫字母chars2?=?check_chars2(passwd)#?判斷是否包含特殊字符symbols?=?check_symbols(passwd)if?all([length,?nums,?chars1,?chars2,?symbols]):return?Truedef?main():password?=?raw_input('請輸入需要檢查的密碼:')if?check_password(password):print("恭喜你通過了強密碼檢測")if?__name__?==?'__main__':main()
用正則表達式實現
#!/usr/bin/env?python????
#?-*-?coding:?utf-8?-*-
import?re
import?pyperclip
"""
請先將要檢測的密碼復制到剪切板中再運行程序
密碼必須八位或以上,同時包含數字、字母大小寫和符號
"""def?check_password(passwd):if?r1.search(passwd)?==?None:print('密碼應至少為8位')return?Falseelif?r2.search(passwd)?==?None:print('密碼應包含數字')return?Falseelif?r3.search(passwd)?==?None:print('密碼應同時包含字母大小寫')return?Falseelif?r4.search(passwd)?==?None:print('密碼應包含符號')return?Falseelse:print('密碼檢測通過!')return?Trueif?__name__?==?'__main__':passwd?=?str(pyperclip.paste())r1?=?re.compile(r'.{8,}')r2?=?re.compile(r'\d+')r3?=?re.compile(r'[A-Z][a-z]')r4?=?re.compile(r'([^a-z0-9A-Z])+')check_password(passwd)
轉載于:https://blog.51cto.com/9473774/2064675