--- a/eric6/Utilities/PasswordChecker.py Mon Apr 12 18:25:52 2021 +0200 +++ b/eric6/Utilities/PasswordChecker.py Mon Apr 12 19:05:23 2021 +0200 @@ -356,14 +356,18 @@ fwd = pattern[index:index + self.keyboardPatterns["length"]] rev = self.__strReverse(fwd) - if lowercasedPassword.find(fwd) != -1: - if fwd not in patternsMatched: - self.keyboardPatterns["count"] += 1 - patternsMatched.append(fwd) - if lowercasedPassword.find(rev) != -1: - if fwd not in patternsMatched: - self.keyboardPatterns["count"] += 1 - patternsMatched.append(rev) + if ( + lowercasedPassword.find(fwd) != -1 and + fwd not in patternsMatched + ): + self.keyboardPatterns["count"] += 1 + patternsMatched.append(fwd) + if ( + lowercasedPassword.find(rev) != -1 and + fwd not in patternsMatched + ): + self.keyboardPatterns["count"] += 1 + patternsMatched.append(rev) # Try to find repeated sequences of characters. if self.passwordLength["count"] >= self.repeatedSequences["length"]: @@ -640,11 +644,14 @@ # apply the redundancy # is the password length requirement fulfilled? - if self.recommendedPasswordLength["status"] != self.Status_Exceeded: + if ( + self.recommendedPasswordLength[ + "status"] != self.Status_Exceeded and + self.score["count"] > 0 + ): # full penalty, because password is not long enough, only for # a positive score - if self.score["count"] > 0: - self.score["count"] *= 1.0 / self.redundancy["value"] + self.score["count"] *= 1.0 / self.redundancy["value"] # level it out if self.score["count"] > 100: