eric6/Utilities/PasswordChecker.py

changeset 8227
349308e84eeb
parent 8207
d359172d11be
equal deleted inserted replaced
8226:6dc5b1db7bdc 8227:349308e84eeb
354 for index in range( 354 for index in range(
355 len(pattern) - self.keyboardPatterns["length"] + 1): 355 len(pattern) - self.keyboardPatterns["length"] + 1):
356 fwd = pattern[index:index + 356 fwd = pattern[index:index +
357 self.keyboardPatterns["length"]] 357 self.keyboardPatterns["length"]]
358 rev = self.__strReverse(fwd) 358 rev = self.__strReverse(fwd)
359 if lowercasedPassword.find(fwd) != -1: 359 if (
360 if fwd not in patternsMatched: 360 lowercasedPassword.find(fwd) != -1 and
361 self.keyboardPatterns["count"] += 1 361 fwd not in patternsMatched
362 patternsMatched.append(fwd) 362 ):
363 if lowercasedPassword.find(rev) != -1: 363 self.keyboardPatterns["count"] += 1
364 if fwd not in patternsMatched: 364 patternsMatched.append(fwd)
365 self.keyboardPatterns["count"] += 1 365 if (
366 patternsMatched.append(rev) 366 lowercasedPassword.find(rev) != -1 and
367 fwd not in patternsMatched
368 ):
369 self.keyboardPatterns["count"] += 1
370 patternsMatched.append(rev)
367 371
368 # Try to find repeated sequences of characters. 372 # Try to find repeated sequences of characters.
369 if self.passwordLength["count"] >= self.repeatedSequences["length"]: 373 if self.passwordLength["count"] >= self.repeatedSequences["length"]:
370 for index in range(len(lowercasedPassword) - 374 for index in range(len(lowercasedPassword) -
371 self.repeatedSequences["length"] + 1): 375 self.repeatedSequences["length"] + 1):
638 # save value before redundancy 642 # save value before redundancy
639 self.score["beforeRedundancy"] = self.score["count"] 643 self.score["beforeRedundancy"] = self.score["count"]
640 644
641 # apply the redundancy 645 # apply the redundancy
642 # is the password length requirement fulfilled? 646 # is the password length requirement fulfilled?
643 if self.recommendedPasswordLength["status"] != self.Status_Exceeded: 647 if (
648 self.recommendedPasswordLength[
649 "status"] != self.Status_Exceeded and
650 self.score["count"] > 0
651 ):
644 # full penalty, because password is not long enough, only for 652 # full penalty, because password is not long enough, only for
645 # a positive score 653 # a positive score
646 if self.score["count"] > 0: 654 self.score["count"] *= 1.0 / self.redundancy["value"]
647 self.score["count"] *= 1.0 / self.redundancy["value"]
648 655
649 # level it out 656 # level it out
650 if self.score["count"] > 100: 657 if self.score["count"] > 100:
651 self.score["adjusted"] = 100 658 self.score["adjusted"] = 100
652 elif self.score["count"] < 0: 659 elif self.score["count"] < 0:

eric ide

mercurial