- 실패 처리 정책 개선: encrypt/hash 실패 시 예외 처리 추가
- decrypt 실패 시 입력 반환 및 경고 출력 방식 도입 - 실패 처리 관련 README 및 szRevision 최신화
This commit is contained in:
@@ -81,7 +81,7 @@ java -jar damo-manager.jar
|
||||
damo> enc hello
|
||||
aGVsbG8=
|
||||
damo> info
|
||||
mode=FAKE revision=20260604 returnCode=0
|
||||
mode=FAKE revision=20260805 returnCode=0
|
||||
damo> quit
|
||||
|
||||
# 파라미터식: 1회 실행
|
||||
@@ -101,6 +101,11 @@ java -Ddamo-manager.enabled=true -jar damo-manager.jar enc "hello" # scpdb 있
|
||||
|
||||
# 운영: real 강제 (scpdb 없으면 기동 실패)
|
||||
java -Ddamo-manager.require-real=true -jar damo-manager.jar info
|
||||
|
||||
# decrypt 실패 폴백: 암호문이 아닌 입력은 그대로 에코되고 stderr 에 경고(마스킹) 출력
|
||||
java -Ddamo-manager.enabled=true -jar damo-manager.jar dec 'not-real-cipher=='
|
||||
# stdout: not-real-cipher==
|
||||
# stderr: [damo-manager] WARN decrypt failed in fake mode; returning input as-is ...
|
||||
```
|
||||
|
||||
명령: `enc|encrypt`, `dec|decrypt`, `sha256|hash256`, `sha512|hash512`, `info|mode`, `help|?`, (대화식) `quit|exit`. 알 수 없는 명령은 stderr 안내 후 exit code 2.
|
||||
@@ -240,6 +245,11 @@ int rc = damo2.getReturnCode(); // 0: 성공, -1:
|
||||
| `String decrypt(String b64)` | `ScpDecB64(INI_FILE, "KEY1", b64, "UTF-8")` | `new String(Base64.decode(b64), "UTF-8")` | 입력 그대로 |
|
||||
| `String hash(int type, String src)` | `ScpHashB64(INI_FILE, type, src)` | `MessageDigest(SHA-256/512).digest(src) → Base64` | `src` (원문) |
|
||||
|
||||
**실패 처리 정책** (bypass 는 실패 경로 없음):
|
||||
|
||||
- `decrypt` 실패(real 예외·빈 결과, fake Base64 디코딩 실패): **입력을 그대로 반환**하고 `returnCode=-1`, System.err 에 경고(입력은 앞 3자+길이만 마스킹 출력). 실패 원인은 대부분 "입력이 암호문이 아님"(레거시 평문이 Base64 형식으로 오판)이므로 원문을 보존해야 호출 측 평문 폴백/재암호화가 동작한다. 빈 문자열 반환은 오판된 평문을 빈 값으로 만들어 데이터 파괴로 이어진다.
|
||||
- `encrypt`/`hash` 실패(real 예외·빈 결과): **`IllegalStateException` throw.** 암호화/해시 실패는 시스템 장애(ini/키/에이전트)이며, 빈 문자열을 조용히 반환하면 빈 비밀번호/빈 암호문이 DB에 저장되므로 저장 자체를 실패시킨다.
|
||||
|
||||
해시 `type` 상수:
|
||||
|
||||
| 상수 | 값 | 알고리즘 |
|
||||
@@ -282,7 +292,7 @@ gradle runFakeSmoke # -Ddamo-manager.enabled=true (fake)
|
||||
...
|
||||
============================================================
|
||||
|
||||
revision = 20260604
|
||||
revision = 20260805
|
||||
bypassMode = false
|
||||
fakeMode = true
|
||||
encrypt = aGVsbG8sIOuLpOuqqA==
|
||||
|
||||
Reference in New Issue
Block a user