---
title: "A04:2025 - 加密失效"
weight: 4
date: "2026-03-10T11:26:47+08:00"
lastmod: "2026-03-10T11:26:47+08:00"
---

💡 **学习提示**: 本文档介绍 OWASP Top 10 A04 - 加密失效，涉及敏感数据保护的核心安全问题。

---

## 📋 风险概述

**加密失效 (Cryptographic Failures)** 是指由于未加密、弱加密或加密实现不当，导致敏感数据泄露的风险。这类风险 formerly 称为"敏感数据泄露"(Sensitive Data Exposure)。

### 🟠 危害等级：高危

| 项目 | 说明 |
|------|------|
| **发生率** | 2.56% |
| **平均影响** | 7.42/10 |

---

## 🎯 常见场景

### 1. 明文传输

```
# ❌ 使用 HTTP 而非 HTTPS
http://example.com/login
# 密码以明文传输
```

### 2. 弱密码哈希

```python
# ❌ 使用 MD5/SHA1
hash = md5(password)
hash = sha1(password)

# ✅ 使用 bcrypt/argon2
import bcrypt
hash = bcrypt.hashpw(password, bcrypt.gensalt())
```

### 3. 弱加密算法

```python
# ❌ 使用 DES、RC4、MD5
# ✅ 使用 AES-256、RSA-2048+
```

### 4. 硬编码密钥

```python
# ❌ 密钥硬编码在代码中
SECRET_KEY = "mysecretkey123"
ENCRYPTION_KEY = "0123456789abcdef"
```

---

## 🛡️ 防御方法

### ✅ 1. 强制 HTTPS

```nginx
# 配置强制 HTTPS
server {
    listen 80;
    return 301 https://$server_name$request_uri;
}
```

### ✅ 2. 安全密码存储

```python
# ✅ 使用 bcrypt
import bcrypt
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(12))
```

### ✅ 3. 安全密钥管理

```python
# ✅ 使用环境变量或密钥管理服务
import os
SECRET_KEY = os.environ.get('SECRET_KEY')
```

---

## 🔗 参考资料

- **OWASP Top 10:2025 A04**: https://owasp.org/Top10/A04_2025-Cryptographic_Failures/

---

*最后更新：2026-03-10*
