编写程序,对输入的密码(长度不超过28)进行强度检测。密码强度规定为: 1)含有数字字符; 2)含有小写字母; 3)含有大写字母; 4)密码长度不低于8; 5)至少含有~!@#$%^&*()_=-/,.?<>;:[]{}|\中的一个字符 规定密码满足上列任意条件即加一星,程序输出密码的星级

时间: 2024-03-23 22:37:51 浏览: 17
好的,我会根据你的要求编写一个密码强度检测程序。以下是 Python 代码实现: ```python import re password = input("请输入密码:") # 密码强度等级 level = 0 # 检测密码是否含有数字字符 if re.search(r"\d", password): level += 1 # 检测密码是否含有小写字母 if re.search(r"[a-z]", password): level += 1 # 检测密码是否含有大写字母 if re.search(r"[A-Z]", password): level += 1 # 检测密码长度是否不低于8 if len(password) >= 8: level += 1 # 检测密码是否含有特殊字符 if re.search(r"[~!@#$%^&*()_=-/,.?<>;:|{}\[\]]", password): level += 1 # 输出密码强度等级 print("密码强度等级为:", level) ``` 程序首先要求用户输入密码,然后利用正则表达式进行密码强度检测。逐条检测密码是否含有数字字符、小写字母、大写字母、长度不低于8和特殊字符中的任意一个,每满足一个条件就加一星。最后输出密码强度等级。
相关问题

【问题描述】 编写程序,对输入的密码(长度不超过28)进行强度检测。密码强度规定为: 1)含有数字字符; 2)含有小写字母; 3)含有大写字母; 4)密码长度不低于8; 5)至少含有~!@#$%^&*()_=-/,.?<>;:[]{}|\中的一个字符 规定密码满足上列任意条件即加一星,程序输出密码的星级 【输入形式】 长度在28以内的任意字符串。 【输出形式】 根据密码强度要求,输出密码强度星级,用整数表示

以下是Python的实现代码: ```python import re password = input() # 读入密码 # 初始星级为0 star = 0 # 检查密码是否含有数字字符,若有则加一星 if re.search(r'\d', password): star += 1 # 检查密码是否含有小写字母,若有则加一星 if re.search(r'[a-z]', password): star += 1 # 检查密码是否含有大写字母,若有则加一星 if re.search(r'[A-Z]', password): star += 1 # 检查密码长度是否不低于8,若是则加一星 if len(password) >= 8: star += 1 # 检查密码是否含有特殊字符,若有则加一星 if re.search(r'[~!@#$%^&*()_=-/,.?<>;:[]{}|\\]', password): star += 1 # 输出星级 print(star) ``` 以上代码使用了正则表达式进行密码的强度检测,可以满足题目要求。

用python编写程序 输入密码字符串,判断密码强度

你好,我是C知道。以下是我的回答: 可以使用以下方法来判断密码强度: 1. 密码长度:密码长度应该至少为8个字符。 2. 大小写字母、数字和符号:密码应该包含大小写字母、数字和符号。 3. 避免常见密码:密码不应该是常见的密码,如"123456"或"password"。 4. 避免个人信息:密码不应该包含个人信息,如生日或姓名。 以下是一个用Python编写的程序,可以判断密码强度: ```python def check_password_strength(password): # 判断密码长度 if len(password) < 8: return "密码强度较弱,密码长度应至少为8个字符。" # 判断是否包含大小写字母、数字和符号 has_uppercase = False has_lowercase = False has_digit = False has_symbol = False for char in password: if char.isupper(): has_uppercase = True elif char.islower(): has_lowercase = True elif char.isdigit(): has_digit = True else: has_symbol = True if not (has_uppercase and has_lowercase and has_digit and has_symbol): return "密码强度较弱,密码应包含大小写字母、数字和符号。" # 判断是否为常见密码 common_passwords = ["123456", "password", "123456789", "12345678", "12345", "1234567", "1234567890", "qwerty", "abc123", "111111", "123123", "admin", "letmein", "welcome", "monkey", "login", "passw0rd", "starwars", "1234", "dragon", "football", "1234567898", "654321", "1234567899", "123321", "666666", "shadow", "master", "66666666", "qwertyuiop", "123456789a", "123456789b", "123456789c", "123456789d", "123456789e", "123456789f", "123456789g", "123456789h", "123456789i", "123456789j"] if password in common_passwords: return "密码强度较弱,密码为常见密码。" # 判断是否包含个人信息 if "birth" in password.lower() or "name" in password.lower(): return "密码强度较弱,密码包含个人信息。" # 密码强度较强 return "密码强度较强。" password = input("请输入密码:") print(check_password_strength(password)) ``` 希望这个程序能够帮助你判断密码强度。

相关推荐

最新推荐

recommend-type

java实现的密码强度检测功能完整示例

主要介绍了java实现的密码强度检测功能,结合完整实例形式分析了java针对密码强度检测相关的字符串遍历、判断,以及输出密码强度等级相关操作技巧,需要的朋友可以参考下
recommend-type

Lua判断变量是否为数字、字符串是否可以转换为数字等

主要介绍了Lua判断变量是否为数字、字符串是否可以转换为数字等,本文讲解了Lua 判断是字符还是数字的方法、Lua判断数字的方法、判断可否转换为数字的方法、判断并且准备一个初值的方法,需要的朋友可以参考下
recommend-type

将字符串str1复制为字符串str2的三种解决方法

以下是对将字符串str1复制为字符串str2的三种解决方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
recommend-type

python随机生成大小写字母数字混合密码(仅20行代码)

主要介绍了python随机生成大小写字母数字混合密码,主要是利用random模块随机生成数字,大小写字母,通过循环次数来实现此功能,需要的朋友可以参考下
recommend-type

C语言实现将字符串转换为数字的方法

主要介绍了C语言实现将字符串转换为数字的方法,涉及系统函数atoi()函数的使用技巧,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

优化MATLAB分段函数绘制:提升效率,绘制更快速

![优化MATLAB分段函数绘制:提升效率,绘制更快速](https://ucc.alicdn.com/pic/developer-ecology/666d2a4198c6409c9694db36397539c1.png?x-oss-process=image/resize,s_500,m_lfit) # 1. MATLAB分段函数绘制概述** 分段函数绘制是一种常用的技术,用于可视化不同区间内具有不同数学表达式的函数。在MATLAB中,分段函数可以通过使用if-else语句或switch-case语句来实现。 **绘制过程** MATLAB分段函数绘制的过程通常包括以下步骤: 1.
recommend-type

SDN如何实现简易防火墙

SDN可以通过控制器来实现简易防火墙。具体步骤如下: 1. 定义防火墙规则:在控制器上定义防火墙规则,例如禁止某些IP地址或端口访问,或者只允许来自特定IP地址或端口的流量通过。 2. 获取流量信息:SDN交换机会将流量信息发送给控制器。控制器可以根据防火墙规则对流量进行过滤。 3. 过滤流量:控制器根据防火墙规则对流量进行过滤,满足规则的流量可以通过,不满足规则的流量则被阻止。 4. 配置交换机:控制器根据防火墙规则配置交换机,只允许通过满足规则的流量,不满足规则的流量则被阻止。 需要注意的是,这种简易防火墙并不能完全保护网络安全,只能起到一定的防护作用,对于更严格的安全要求,需要
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。