import math import re def pass_strength(password): hero = 0 size = len(password) char_counts = { char: password.count(char) for char in set(password)} for count in char_counts.values(): p = count / size hero -= p * math.log(p, 2) strength = (hero / 3.2) * 100 if strength > 100: strength = 100 if len(password) < 8: return "رمزعبور حداقل باید 8 کاراکتر باشد" if not re.search(r'\d', password): return "حداقل باید یک عدد داخل رمزعبور باشد" if not re.search(r'[A-Z]', password): return "حداقل باید یک حرف انگلیسی بزرگ داخل رمزعبور باشد" if not re.search(r'[!\"#$%&\'()*+,-./:;<>=?@[\]{}^_`~]', password): return "حداقل باید یک کاراکتر خاص داخل رمزعبور باشد" return f"{strength:.0f} : قدرت رمزعبور" print(pass_strength('[es51tP}a*s1')) # 100 : قدرت رمزعبور print(pass_strength('pas_Test0')) # 92 : قدرت رمزعبور