编写程序,对输入的密码(长度不超过28)进行强度检测。密码强度规定为: 1)含有数字字符; 2)含有小写字母; 3)含有大写字母; 4)密码长度不低于8; 5)至少含有~!@#$%^&*()_=-/,.?<>;:[]{}|\中的一个字符 规定密码满足上列任意条件即加一星,程序输出密码的星级
时间: 2024-03-23 16:37:51 浏览: 41
好的,我会根据你的要求编写一个密码强度检测程序。以下是 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))
```
希望这个程序能够帮助你判断密码强度。