feat: Phase 3 보안 강화 - API 키 AES-256 암호화

- server/encryption.py: AES-256 암호화/복호화 함수 추가
- test_admin.py: API 키 암호화 저장 및 조회 로직 구현
- static/admin.js: 암호화 상태 표시 UI 추가
- static/admin.css: 암호화 배지 스타일 추가

API 키가 이제 AES-256으로 암호화되어 저장됩니다.
This commit is contained in:
Hyungi Ahn
2025-08-19 15:29:53 +09:00
parent 1e098999c1
commit 841178ed7e
4 changed files with 240 additions and 20 deletions

View File

@@ -221,11 +221,15 @@ class AdminDashboard {
container.innerHTML = apiKeys.map(key => `
<div class="api-key-item">
<div class="api-key-info">
<div class="api-key-name">${key.name || 'Unnamed Key'}</div>
<div class="api-key-name">
${key.name || 'Unnamed Key'}
${key.encrypted ? '<span class="encryption-badge"><i class="fas fa-lock"></i> Encrypted</span>' : '<span class="encryption-badge plain"><i class="fas fa-unlock"></i> Plain</span>'}
</div>
<div class="api-key-value">${this.maskApiKey(key.key)}</div>
<div class="api-key-meta">
Created: ${new Date(key.created_at).toLocaleString('ko-KR')} |
Uses: ${key.usage_count || 0}
${key.encrypted ? ' | 🔒 AES-256 Encrypted' : ' | ⚠️ Plain Text'}
</div>
</div>
<div class="api-key-actions">