校驗密碼:長度再8~24之間並且包含大小寫字母數字特殊字符中的至少三種


class JudgePassword(object):
    def __init__(self,password):
        self.password = str(password)
        self.length_num = 0
        self.upper_num = 0
        self.lower_num = 0
        self.digit_num = 0
        self.special_num = 0
        self.pwd_verification()
        self.num_check()
        self.total_veri_num = self.total_veri_num()

    def pwd_verification(self):
if 8 <= len(self.password) <= 24:
      self.length_num += 1
for i in self.password: if i.isupper(): self.upper_num += 1 if i.islower(): self.lower_num += 1 if i.isdigit(): self.digit_num += 1 # 不是大寫字母、小寫字母、數字 if (not i.isupper()) and (not i.islower()) and (not i.isdigit()): self.special_num += 1 def num_check(self): if self.length_num >= 1: self.length_num = 1 if self.upper_num >= 1: self.upper_num = 1 if self.lower_num >= 1: self.lower_num = 1 if self.digit_num >= 1: self.digit_num = 1 if self.special_num >= 1: self.special_num = 1 def total_veri_num(self): return (self.length_num + self.upper_num + self.lower_num + self.digit_num + self.special_num) text = "Wasd123SA@#@" a = JudgePassword(text) print(a.total_veri_num) # 大於等於4表示校驗通過

正則表達式的方法

import re

s = "qwe123asdA"

print(len(s))


# 第一種
ss1 = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,24}$"

# 第二種:
ss2 = "((^(?=.*[a-z])(?=.*[A-Z])(?=.*\W)[\da-zA-Z\W]{8,16}$)|(^(?=.*\d)(?=.*[A-Z])(?=.*\W)[\da-zA-Z\W]{8,16}$)|(^(?=.*\d)(?=.*[a-z])(?=.*\W)[\da-zA-Z\W]{8,16}$)|(^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[\da-zA-Z\W]{8,24}$))"

# 第三種:
ss3 = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,24}$"


ret = re.match(ss1,s)
print(ret)

~~~


免責聲明!

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



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