编写程序,对输入的密码(长度不超过28)进行强度检测。密码强度规定为: 1)含有数字字符; 2)含有小写字母; 3)含有大写字母; 4)密码长度不低于8; 5)至少含有~!@#$%^&*()_=-/,.?<>;:[]{}|\中的一个字符 规定密码满足上列任意条件即加一星,程序输出密码的星级
时间: 2024-03-10 12:46:22 浏览: 26
下面是一个简单的 Python 程序,用于对输入的密码进行强度检测,并输出密码的星级:
```python
import re
password = input("请输入密码:")
# 初始星级为0
stars = 0
# 检查是否含有数字字符
if re.search(r"\d", password):
stars += 1
# 检查是否含有小写字母
if re.search(r"[a-z]", password):
stars += 1
# 检查是否含有大写字母
if re.search(r"[A-Z]", password):
stars += 1
# 检查密码长度
if len(password) >= 8:
stars += 1
# 检查是否含有特殊字符
if re.search(r"[~!@#$%^&*()_=-/,.?<>;:\[\]{}|\\]", password):
stars += 1
# 输出密码的星级
print("密码强度:", stars, "星")
```
在这个程序中,我们使用了正则表达式来匹配密码中的各种要求。`re.search()` 函数会在字符串中查找匹配的子串,如果找到则返回一个匹配对象,否则返回 `None`。使用正则表达式,我们可以轻松地检查密码中是否包含数字、小写字母、大写字母、特殊字符等要求。最后,我们根据符合要求的条件数来计算密码的星级,并输出结果。
相关问题
【问题描述】 编写程序,对输入的密码(长度不超过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))
```
希望这个程序能够帮助你判断密码强度。