Update check.py

This commit is contained in:
Daniel
2023-01-07 01:44:31 +02:00
committed by GitHub
parent 8caf5696f5
commit 29d4e903e9

View File

@@ -1,52 +1,40 @@
def checkLength(passw): def checkLength(psw):
if 20 >= len(passw) >= 8: if 20 >= len(psw) >= 8:
return 0 return 0
elif len(passw) > 20: elif len(psw) > 20:
return len(passw) - 20 return len(psw) - 20
return 8 - len(passw) return 8 - len(psw)
def checkRepeating(passw): def checkRepeating(psw):
steps = 0 steps = 0
i = 0
tempSteps = 1 tempSteps = 1
while (len(passw) > 1): while len(psw) > 1:
x = passw[0] x = psw[0]
if passw[1] == x: if psw[1] == x:
tempSteps += 1 tempSteps += 1
passw = passw[1:] psw = psw[1:]
else: else:
if tempSteps > 2: steps = tempSteps - 2 + steps if tempSteps > 2 else steps
steps += tempSteps - 2
tempSteps = 1 tempSteps = 1
passw = passw[1:] psw = psw[1:]
if steps == 0:
return 0
return steps return steps
def checkComposition(passw): def checkComposition(psw):
# lowercase, uppercase, numeric, special
values = [0, 0, 0, 0] values = [0, 0, 0, 0]
counter = 0 for x in psw:
for x in passw: values[0] = 1 if x.islower() else values[0]
if x.islower(): values[1] = 1 if x.upper() else values[1]
values[0] = 1 values[2] = 1 if x.isnumeric() else values[2]
if x.isupper():
values[1] = 1
if x.isnumeric():
values[2] = 1
if x in ['@', '_', '!', '#', '$', '%', '^', '&', '*', '(', ')', '<', '>', '?', '/', '\'', '|', '}', '{', '~', if x in ['@', '_', '!', '#', '$', '%', '^', '&', '*', '(', ')', '<', '>', '?', '/', '\'', '|', '}', '{', '~',
':', '-']: ':', '-']:
values[3] = 1 values[3] = 1
for x in values: return values.count(0)
if x == 1:
counter += 1
return 4 - counter
def checkPassword(passw): def checkPassword(psw):
x = max(checkLength(passw), checkComposition(passw), checkRepeating(passw)) x = max(checkLength(psw), checkComposition(psw), checkRepeating(psw))
if x: if x:
return x return x
return "good" return "good"