Python--实现密码强度检测器

本文介绍了如何使用Python实现一个密码强度检测器,通过评估密码的长度、包含的大写字母、小写字母、数字和特殊符号等特征来量化密码强度,并设置了不同等级的强度标准。文章还提及了可配置的最小程度和最小特征数选项,并提供了相关的代码实现。
摘要由CSDN通过智能技术生成

注:本文内容来源于实验楼–python实现密码强度检测器 课程笔记

密码强度

密码强度如何量化呢?
一个密码可以有以下几种类型:长度、大写字母、小写字母、数字以及特殊符号。
显然,密码包含的特征越多、长度越长,其强度也就越高。
我们设置几个等级来评测密码强度,分别是:terrible, simple,
medium, strong
不同的应用可能对密码强度的要求不一样,我们引入最小程度(min_length)和最小特征数(min_types),作为可配置选项。
这样我们就可以检测密码包含的特征,特征与密码之间的关系可以简单定义为:

特征数 强度
小于最小长度 terrible
常用密码或规则的密码 simple
小于最小特征数 medium
大于或等于最小特征数 strong

常用的密码可以从这里获取。

代码实现

check.py

# coding: utf-8

"""
check
Check if your password safe
"""

import re


# 特征
NUMBER = re.compile(r'[0-9]')
LOWER_CASE = re.compile(r'[a-z]')
UPPER_CASE = re.compile(r'[A-Z]')
OTHERS = re.compile(r'[^0-9A-Za-z]')


def load_common_password():
    words = []
    with open("10k_most_common.txt", "r") as f:
        for word in f:
            words.append(word.strip())
    return words

COMMON_WORDS = load_common_password()


# 管理密码强度的类
class Strength(object):
    """
    密码强度三个属性:是否有效valid, 强度strength, 提示信息message
    """
    def __init__(self, valid, strength, message):
       
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值