작업 히스토리 (History)
기록된 작업이 없습니다.

로그인하시면 작업 기록을 무제한으로 저장하고 여러 기기에서 동기화하여 사용할 수 있습니다.

AESCIPHERSECURITY

AES 암복호화

비밀번호 또는 16진수 키를 사용해 AES-GCM/CBC로 메시지를 암복호화합니다.

Encryption Mode
Parameters (Salt & IV)
Salt (Hex, 16-byte)32 hex chars
IV (Hex, 12-byte)24 hex chars
Result Output
Encrypted cipher representation
CIPHERTEXT
Waiting for input text and password...
Cipher Settings

도구 설명 및 사용 방법

비밀번호나 16진수 보안 키를 기준으로 대칭 암호화 규격인 AES 알고리즘을 사용해 데이터를 완전히 난독화하거나 원래대로 환원합니다. GCM 및 CBC 작동 모드를 모두 지원합니다. 모든 암복호화가 브라우저 로컬에서 수행됩니다.

사용 단계

1
수행할 작업 방향(Encrypt 암호화 / Decrypt 복호화) 탭을 결정합니다.
2
대칭키 기준 비밀번호를 입력하고, 상세 암호화 연산 모드(GCM 또는 CBC)를 설정합니다.
3
암호화할 원문을 적어 실시간 계산된 암호 데이터 스트링을 추출합니다.
4
복호화할 때는 원문 암호 기입 후 암호화 당시 사용었던 비밀번호와 블록 모드를 대조 입력해 평문을 풀어냅니다.

작동 원리 및 상세 설명

AES (Advanced Encryption Standard)는 NIST가 채택한 대칭 키 블록 암호로, 128/192/256비트 키를 지원합니다. GCM(Galois/Counter Mode)은 인증 암호화(authenticated encryption)로, 기밀성과 무결성을 동시에 보장합니다. CBC(Cipher Block Chaining)는 IV를 사용해 동일 평문이라도 다른 암호문을 만들지만, 인증 기능이 없어 별도의 MAC이 필요합니다. 이 도구는 브라우저의 Web Crypto API를 사용하여 실제로 안전한 암호화를 수행합니다. IV 생성, 키 파생, 인증 태그 검증 등 보안에 중요한 부분이 올바르게 구현되어 있습니다. 모든 암복호화가 클라이언트 로컬에서만 수행되므로, 실제 비밀 키나 민감한 평문을 외부 서버에 노출하지 않고도 암호화 로직을 안전하게 테스트하고 이해할 수 있습니다.

자주 묻는 질문 (FAQ)

GCM과 CBC 중 어떤 모드를 사용해야 하나요?
GCM은 인증(무결성 검증) 기능이 내장되어 있어 대부분의 경우 추천됩니다. CBC는 레거시 시스템과의 호환성을 위해 사용되지만, 별도의 인증 태그(HMAC)가 필요합니다. 새로운 프로젝트에서는 GCM을 우선하세요.
동일한 평문이라도 매번 다른 암호문이 나오나요?
GCM 모드에서는 IV(초기화 벡터)가 매번 무작위로 생성되므로 동일한 평문이라도 다른 암호문이 나옵니다. 이는 패턴 분석 공격을 방지하는 중요한 보안 특성입니다. 복호화 시에는 IV가 암호문과 함께 전달되어야 합니다.
입력한 평문이나 키가 외부로 전송되나요?
절대 전송되지 않습니다. Web Crypto API의 subtle.encrypt/decrypt를 사용해 브라우저 내부에서만 암복호화가 수행됩니다. 가장 민감한 비밀 정보도 안전하게 테스트할 수 있습니다.

코드 사용 예시

클라이언트 측에서 민감한 설정을 암호화하여 저장
javascript
// 사용자가 입력한 민감한 API 키를 로컬에 안전하게 저장
const password = 'user-master-password';
const plaintext = 'sk_live_abc123...';

const encrypted = await encryptWithAES(plaintext, password); // 도구 또는 Web Crypto
localStorage.setItem('apiKey', encrypted);

// 복호화는 사용자가 비밀번호를 입력할 때만 수행
const decrypted = await decryptWithAES(encrypted, password);

브라우저 확장이나 로컬 우선 애플리케이션에서 사용자의 민감한 자격 증명을 기기 로컬에 안전하게 보관하는 패턴입니다.