python正則檢測密碼合法性


客戶系統升級,要求用戶密碼符合一定的規則,即:包含大小寫字母、數字、符號,長度不小於8,於是先用python寫了個簡單的測試程序:

#encoding=utf-8

#-------------------------------------------------------------------------------
# Name:        模塊1
# Purpose:
#
# Author:      Administrator
#
# Created:     10-06-2014
# Copyright:   (c) Administrator 2014
# Licence:     <your licence>
#-------------------------------------------------------------------------------
import re

def checklen(pwd):
    return len(pwd)>=8

def checkContainUpper(pwd):
    pattern = re.compile('[A-Z]+')
    match = pattern.findall(pwd)

    if match:
        return True
    else:
        return False

def checkContainNum(pwd):
    pattern = re.compile('[0-9]+')
    match = pattern.findall(pwd)
    if match:
        return True
    else:
        return False

def checkContainLower(pwd):
    pattern = re.compile('[a-z]+')
    match = pattern.findall(pwd)

    if match:
        return True
    else:
       return False

def checkSymbol(pwd):
    pattern = re.compile('([^a-z0-9A-Z])+')
    match = pattern.findall(pwd)

    if match:
        return True
    else:
        return False

def checkPassword(pwd):

    #判斷密碼長度是否合法
    lenOK=checklen(pwd)

    #判斷是否包含大寫字母
    upperOK=checkContainUpper(pwd)

    #判斷是否包含小寫字母
    lowerOK=checkContainLower(pwd)

    #判斷是否包含數字
    numOK=checkContainNum(pwd)

    #判斷是否包含符號
    symbolOK=checkSymbol(pwd)

    print(lenOK)
    print(upperOK)
    print(lowerOK)
    print(numOK)
    print(symbolOK)
    return (lenOK and upperOK and lowerOK and numOK and symbolOK)


def main():
    if checkPassword('Helloworld#123'):
        print('檢測通過')
    else:
        print('檢測未通過')


if __name__ == '__main__':
    main()

 

平時用正則不多,不知道怎么寫一個正則滿足要求,用了比較笨的辦法,誰知道一句正則檢驗的請賜教!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM