首页 > 编程语言 >python 校验密码强度

python 校验密码强度

时间:2024-07-12 23:54:55浏览次数:22  
标签:return string python 校验 char 密码 password check

在我们的日常生活中,密码的安全性是非常重要的。无论是我们的电子邮件账户,社交媒体账户,还是银行账户,都需要一个强大的密码来保护。在这篇文章中,我将向你展示如何使用 Python 来检查密码的强度。

代码解析

首先,我们需要导入 string 库。

import string

然后,我们定义一个函数 check_password_strength(password),该函数接受一个参数 password,表示需要检查的密码。

def check_password_strength(password):
    # 弱密码:长度小于6,或者只包含字母
    if len(password) < 6 or all(char in string.ascii_letters for char in password):
        return "弱密码"
    # 中等密码:长度在6到8之间,包含字母和数字
    elif 6 <= len(password) < 8 and any(char.isdigit() for char in password):
        return "中等密码"
    # 强密码:长度大于等于8,包含字母、数字和标点符号
    elif len(password) >= 8 and any(char.isdigit() for char in password) and any(char in string.punctuation for char in password):
        return "强密码"
    else:
        return "密码强度未知"

在这个函数中,我们根据密码的长度和包含的字符类型来判断密码的强度:

  • 如果密码长度小于6,或者密码只包含字母,则认为是弱密码;
  • 如果密码长度在6到8之间,并且包含字母和数字,则认为是中等密码;
  • 如果密码长度大于等于8,并且包含字母、数字和标点符号,则认为是强密码。

接下来,我们可以测试一下这个函数:

while True:
    password = input("请输入你的密码(输入'q'退出):")
    if password.lower() == 'q':
        break
    print(check_password_strength(password))

运行结果如下

这段代码会不断地提示用户输入密码,然后打印出密码的强度。当用户输入 ‘q’ 时,程序会退出。

完整代码如下

import string

def check_password_strength(password):
    # 弱密码:长度小于6,或者只包含字母
    if len(password) < 6 or all(char in string.ascii_letters for char in password):
        return "弱密码"
    # 中等密码:长度在6到8之间,包含字母和数字
    elif 6 <= len(password) < 8 and any(char.isdigit() for char in password):
        return "中等密码"
    # 强密码:长度大于等于8,包含字母、数字和标点符号
    elif len(password) >= 8 and any(char.isdigit() for char in password) and any(char in string.punctuation for char in password):
        return "强密码"
    else:
        return "密码强度未知"

# 测试
while True:
    password = input("请输入你的密码(输入'q'退出):")
    if password.lower() == 'q':
        break
    print(check_password_strength(password))

结论

通过这个简单的 Python 脚本,我们可以轻松地检查密码的强度。这对于保护我们的在线账户的安全性非常有帮助。希望你喜欢这篇文章,如果你有任何问题或建议,欢迎在下面留言。

标签:return,string,python,校验,char,密码,password,check
From: https://blog.csdn.net/m0_74972192/article/details/140356228

相关文章

  • 用python处理excel数据
    1.小技巧:用print()检查代码,可以把想检查的变量作为参数放进括号内打印出来,便于检查2.第三方库:1.xlrd读取excel文件。 2.xlwt写入excel文件。 3.xlutils一组excel高级操作的工具3.xlrd包含四个功能:1.读取有效单元格的行数和列数。2.读取指定行或列所有单元格的值。3.读取......
  • 【Python 基础】列表 - 1
    列表在你能够开始编写程序之前,还有一个主题需要理解,那就是列表数据类型及元组。列表和元组可以包含多个值,这样编写程序来处理大量数据就变得更容易。而且,由于列表本身又可以包含其他列表,所以可以用它们将数据安排成层次结构。列表数据类型“列表”是一个值,它包含多个字构......
  • 【python学习】面向对象编程以及面向对象编程的核心概念和使用方法
    引言Python语言设计之初,就是为了面向对象,所以Python的面向对象更加易于理解。面向对象编程中,我们将现实世界的实体视为对象,每个对象都有属性(数据)和行为(方法)文章目录引言一、面向对象编程是什么二、面向过程编程和面向对象编程的区别2.1面对过程编程2.2面向对象编......
  • 【Python123题库】#查询省会 #字典的属性、方法与应用
    禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/140081665参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301有帮助麻烦点个赞~~Python123题库查询省会字典的属性、方法与应用查询省会类型:字典‪‬‪‬‪‬‪‬‪‬‮‬‪‬......
  • 超详细Python教程——迭代器和生成器
    迭代器和生成器迭代器是实现了迭代器协议的对象。Python中没有像protocol或interface这样的定义协议的关键字。Python中用魔术方法表示协议。__iter__和__next__魔术方法就是迭代器协议。classFib(object):"""迭代器"""def__init__(self,num):......
  • [SUCTF 2019]Pythonginx 1
    目录题目代码分析urlsplit()nginx文件位置解题题目代码分析fromflaskimportFlask,Blueprint,request,Response,escape,render_templatefromurllib.parseimporturlsplit,urlunsplit,unquotefromurllibimportparseimporturllib.requestapp=......
  • python————集合干货
    1.集合的定义python中的集合是一种无序的,元素不重复的数据结构。定义集合的方式:方式一:        #方式一不可以定义空集合s0={1,2,3,4}print(s0,type(s0))方式二:#方式二s1=set()print(s1,type(s1))s2=set(range(10))print(s0,type(s0))2.集合的......
  • python的视频处理实操宝典
    前言Python视频去抖动是指利用Python编程语言和相关的图像处理库,对视频中由于相机震动或手持拍摄等原因而导致的画面抖动进行处理的技术。视频去抖动的目的是使得视频画面更加稳定,减少抖动,提高观看体验。通常,视频去抖动的实现可以采用多种方法,包括基于帧差的方法、运动估......
  • python:使用matplotlib库绘制图像(四)
    作者是跟着http://t.csdnimg.cn/4fVW0学习的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己学习过程中整理的详细说明版本,对小白更友好哦!四、条形图1.一个数据样本的条形图条形图:常用于比较不同类别的数量或值,以及进行简单的数据分析。直方图:常用于分析数据的集中趋......
  • 基于python+爬虫实现招聘职位数据分析[源码+LW+部署讲解视频]
    作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业......