shreeya2611/Vulnerability-Scanner
GitHub: shreeya2611/Vulnerability-Scanner
一个基于 Python 的密码强度分析器,通过多维度标准评估密码安全性并提供 0-100 分的量化评分和改进建议。
Stars: 0 | Forks: 0
# 密码强度分析器 🔐
一个全面的 Python 项目,基于多种安全标准来分析和评估密码强度。
## 功能 ✨
- **综合分析**:检查多种标准,包括长度、字符类型和模式检测
- **交互模式**:通过实时反馈交互式地测试密码
- **批量测试**:一次性分析多个密码
- **详细反馈**:获取提升密码强度的具体建议
- **安全数据库**:检测常用的弱密码
- **模式检测**:识别序列和重复字符模式
- **基于分数的评估**:0-100 评分系统及强度等级
- **颜色编码输出**:提供视觉反馈以便于理解
## 项目结构
```
SOC Mini/
├── password_strength_analyzer.py # Main analyzer module
├── interactive_analyzer.py # Interactive CLI interface
├── SAMPLE_OUTPUT.txt # Example outputs and documentation
└── README.md # This file
```
## 安装说明
### 前置条件
- Python 3.7+
- 无需外部依赖(仅使用标准库)
### 设置
```
# 无需安装 - 直接运行脚本
cd "SOC Mini"
```
## 使用方法
### 1. 运行批量测试(默认)
```
python password_strength_analyzer.py
```
这会测试 8 个预设的密码,并展示:
- 每个密码的单独分析报告
- 汇总统计数据
- 强度分布
**输出示例:**
```
============================================================
PASSWORD STRENGTH ANALYSIS REPORT
============================================================
Password: **************
Length: 14 characters
Score: 95/100
Strength: Very Strong
Timestamp: 2024-07-17 10:30:45
------------------------------------------------------------
Feedback:
✓ Good length (14 characters)
✓ Contains uppercase letters
✓ Contains lowercase letters
✓ Contains numbers
✓ Contains special characters
✓ Not a common password
============================================================
```
### 2. 运行交互模式
```
python interactive_analyzer.py
```
交互模式允许你:
- 输入你自己的密码进行测试
- 获取实时反馈
- 输入 `help` 获取密码强度提示
- 输入 `quit` 退出
**示例会话:**
```
Enter password to analyze (or 'quit'/'help'): MyPassword123
============================================================
ANALYSIS RESULT - Strong
============================================================
Length: 13 characters
Score: 75/100
Strength: Strong
------------------------------------------------------------
Feedback:
✓ Good length (13 characters)
✓ Contains uppercase letters
✓ Contains lowercase letters
✓ Contains numbers
❌ Add special characters (!@#$%^&*)
✓ Not a common password
============================================================
```
### 3. 从交互模式运行批量模式
```
python interactive_analyzer.py --batch
```
## 评分标准
| 标准 | 分数 | 详情 |
|-----------|--------|---------|
| **长度** | 20 | 8-11 (10分), 12-15 (15分), 16+ (20分) |
| **大写字母** | 15 | 包含 A-Z |
| **小写字母** | 15 | 包含 a-z |
| **数字** | 20 | 包含 0-9 |
| **特殊字符** | 20 | 包含 !@#$%^&* 等 |
| **非常用密码** | 10 | 不在弱密码数据库中 |
| **惩罚项** | -10/-5 | 序列 (abc, 123) 或重复字符 (aaa, 111) |
## 强度等级
| 分数 | 等级 | 状态 |
|-------|-------|--------|
| 0-19 | **非常弱** | ❌ |
| 20-39 | **弱** | ⚠️ |
| 40-59 | **中等** | ⚡ |
| 60-79 | **强** | ✓ |
| 80-100 | **非常强** | 🔐 |
## 强密码提示 💡
1. **使用至少 12 个字符**(最少 8 个)
2. **混合字符类型**:大写字母、小写字母、数字、特殊字符
3. **避免常用词**:不要使用字典词汇或名称
4. **避免模式**:不要使用序列 (abc, 123) 或重复字符
5. **确保其唯一性**:不要在多个网站上重复使用密码
6. **使用密码短语**:"Tr0pic@lSunset2024!" 比随机字符更容易记住
7. **定期更换**:定期更新重要的密码
## 强密码示例
| 密码 | 分数 | 备注 |
|----------|-------|-------|
| `Pass123` | 15 | 太短,无特殊字符 |
| `MyPassword123` | 75 | 不错!缺少特殊字符 |
| `SecureP@ss2024!` | 95 | 极佳!满足所有标准 |
| `Tr0pic@lSunset#24` | 90 | 很棒!好记且安全 |
## API 用法
### 基本用法
```
from password_strength_analyzer import PasswordStrengthAnalyzer
analyzer = PasswordStrengthAnalyzer()
password = "MySecurePassword123!"
report = analyzer.analyze(password)
print(f"Strength: {report['strength']}") # Output: Very Strong
print(f"Score: {report['score']}") # Output: 95
print(f"Length: {report['length']}") # Output: 21
```
### 报告结构
```
{
'password': '***...', # Masked password
'length': 21, # Character count
'score': 95, # 0-100 score
'strength': 'Very Strong', # Strength level
'feedback': [ # List of feedback items
'✓ Good length (21 characters)',
'✓ Contains uppercase letters',
# ... more feedback
],
'timestamp': '2024-07-17 10:30:45' # When analyzed
}
```
## 安全提示 🔒
- ⚠️ **永远不要与任何人分享你的密码**,包括密码分析器
- ⚠️ **此工具在本地运行** - 不会向外部服务器发送任何密码
- ✓ **密码会被掩码处理**,在输出中显示为星号
- ✓ **仅用于教育目的**和个人密码评估
## 弱密码数据库
该分析器包含一个包含 20 个常用弱密码的数据库:
- 123456, 123456789, password, 12345678, qwerty, abc123, monkey 等。
## 局限性
- 不会检查完整的密码泄露数据库(如 Have I Been Pwned)
- 无法检测密码是否在其他地方被使用过
- 简单的评分模型(未使用高级机器学习)
- 不检查上下文相关的弱点(例如,密码是否使用了宠物名)
## 未来增强功能 🚀
- [ ] 集成真实的密码泄露数据库
- [ ] 基于机器学习的评分
- [ ] 支持多种语言
- [ ] 图形用户界面
- [ ] 密码生成建议
- [ ] 将报告导出为 CSV/JSON
- [ ] 用于批处理的多线程
## 示例输出
查看 `SAMPLE_OUTPUT.txt` 获取以下完整示例:
- 批量测试输出
- 交互模式会话
- 详细报告
- 统计数据汇总
## 许可证
免费用于教育和个人目的。
## 作者
为 SOC (Security Operations Center) 迷你项目而创建
**记住**:强密码是你的第一道防线!🛡️
标签:Python, 安全运营(SOC), 密码安全, 无后门, 逆向工具