diff --git a/LabMD_2/check.py b/LabMD_2/check.py index 8b13789..c698042 100644 --- a/LabMD_2/check.py +++ b/LabMD_2/check.py @@ -1 +1,50 @@ +def checkLength(passw): + if 20 >= len(passw) >= 8: + return 0 + elif len(passw) > 20: + return len(passw) - 20 + return 8 - len(passw) + +def checkRepeating(passw): + steps = 0 + letters = {x: 0 for x in passw} + for x in passw: + letters[x] += 1 + for x in letters: + if letters[x] > 2: + steps += letters[x] - 2 + if steps == 0: + return 0 + return steps + + +def checkComposition(passw): + # lowercase, uppercase, numeric, special + values = [0, 0, 0, 0] + counter = 0 + for x in passw: + if x.islower(): + values[0] = 1 + if x.isupper(): + values[1] = 1 + if x.isnumeric(): + values[2] = 1 + if x in ['@', '_', '!', '#', '$', '%', '^', '&', '*', '(', ')', '<', '>', '?', '/', '\'', '|', '}', '{', '~', + ':', '-']: + values[3] = 1 + for x in values: + if x == 1: + counter += 1 + return 4 - counter + + +def checkPassword(passw): + x = max(checkLength(passw), checkComposition(passw), checkRepeating(passw)) + if x: + return x + return "good" + + +passw = input() +print(checkPassword(passw))