logo
GeekFormat

AES 암호화 및 복호화

사용 전에 읽어주세요

이 도구는 브라우저 내에서 완전히 작동합니다. 평문, 암호문, 키는 어떤 서버로도 전송되지 않습니다.

개발, 디버깅, 학습 및 자체 관리 시나리오에 적합합니다. 영업 비밀, 사용자 데이터 등 프로덕션 환경의 유일한 보호 수단으로 사용하지 마세요.

프로덕션 환경에서는 감사된 암호 라이브러리(libsodium, OpenSSL, AWS Encryption SDK 등), 진정한 KDF(권장 Argon2id ≥ 1 반복 / 64 MiB), AEAD 모드 필수, 서버 측 키 관리 / 접근 제어 / 감사 로그와 함께 사용하세요.

알고리즘 모드
키 길이
암호문 형식 (암호화 출력 / 복호화 입력)
키 출처
평문

UTF-8 텍스트

모드 비교 — GCM vs CBC vs CTR
모드인증IV 요구 사항성능권장 용도
AES-GCM인증 내장 (AEAD, 128 비트 태그)12 바이트 권장, 동일 키 재사용 금지빠름, 하드웨어 가속기본 — 최신 API, 파일 암호화, 인증이 필요한 모든 용도
AES-CBC인증 없음 — HMAC/MAC 필요16 바이트, CSPRNG 필요, 재사용 금지빠름, 하드웨어 가속레거시 TLS, 디스크 암호화(XTS-AES). 새 설계에서는 단독 사용 금지
AES-CTR인증 없음 — HMAC/MAC 필요16 바이트, 재사용 금지(재사용 시 치명적)가장 빠름, 병렬화 가능임의 접근 스트림, 디스크 암호화. 반드시 MAC 과 함께

표 읽는 법

  • AES-GCM 은 셋 중 유일한 AEAD 로, 암호화 + 인증을 한 번에 처리합니다. 어떤 걸 선택할지 모르겠으면 GCM 을 선택하세요.
  • CBC / CTR 은 기밀성만 제공합니다. 반드시 별도의 MAC(HMAC-SHA256, Encrypt-then-MAC) 이 필요합니다. 없으면 선택 암호문 공격과 비트 반전 공격에 무방비입니다.
  • IV / Nonce 는 (key, message) 단위로 유일해야 합니다. GCM 에서 IV 가 재사용되면 인증 키가 누출되어 치명적 사고로 간주됩니다.

모드 및 형식 설명

  • 브라우저의 SubtleCrypto 는 AES 에 대해 GCM, CBC, CTR 만 제공하며 ECB, CFB, OFB 는 제공하지 않습니다 (취약한 사용 방지). 다른 모드가 필요하면 OpenSSL 또는 서버 측 라이브러리를 사용하세요.
  • 암호문 형식은 Hex / Base64 / Base64URL 중 선택 가능. CyberChef, 각종 API, JWT 등의 상황과 일치. 암호화와 복호화 양쪽에서 같은 형식을 선택해야 합니다.
  • AES-GCM 에서 출력은 「암호문 + 인증 태그」의 연속 바이트열입니다. 본 도구는 선택한 형식으로 전체를 인코딩합니다. 복호화 시 전체를 붙여넣으세요.

참고

  • Web Crypto 는 브라우저 내에서 동작합니다. GCM 은 인증 암호화로 기본 상황에 적합합니다.
  • 암호화 시 IV 를 공백으로 두면 도구가 랜덤 IV 를 생성하여 위 입력란에 기록합니다. 복호화 시 재사용할 수 있습니다.
  • 복호화 시 IV 를 공백으로 두면 영벡터로 처리합니다 (상대가 같은 규약을 사용할 때만 유효).

AES-CBC, AES-GCM, AES-CTR을 지원하는 무료 온라인 AES 암호화/복호화 도구입니다. AES-128/192/256 키, Hex/Base64/Base64URL ciphertext 형식, PBKDF2-SHA256 비밀번호 기반 키 파생, 무작위 IV/salt 생성, 브라우저 전용 Web Crypto 처리를 지원합니다.

관련 추천

사용 사례

  • 관리되는 채널로 공유하기 전에 짧은 텍스트 조각을 AES-GCM으로 암호화합니다
  • 프론트엔드-백엔드 통합 중 IV, 키, 모드, 출력 형식을 비교해야 할 때 API payload를 복호화합니다
  • 백엔드가 Hex, Base64, Base64URL 중 어떤 ciphertext 형식을 반환하는지 확인하고 브라우저에서 같은 형식을 재현합니다
  • 비밀번호에서 PBKDF2 기반 AES 키를 생성해 salt, 반복 횟수, 파생 키 크기 동작을 이해합니다
  • AES-CBC, AES-GCM, AES-CTR 출력을 나란히 비교하며 대칭 암호화 모드의 차이를 학습합니다
  • 키, IV, salt, plaintext, 모드, 키 크기, 출력 인코딩을 고정해 재현 가능한 test vector를 만듭니다

주요 기능

  • 세 가지 암호화 모드: AES-CBC, 인증 암호화 AES-GCM, AES-CTR을 지원해 일반적인 암호화 시나리오를 다룹니다
  • 세 가지 키 크기: AES-128, AES-192, AES-256을 지원하며 AES-256을 가장 강력한 기본 선택으로 사용할 수 있습니다
  • 비밀번호 기반 암호화: 약한 원시 비밀번호를 직접 쓰지 않고 PBKDF2-SHA256과 100,000회 반복으로 AES 키를 파생합니다
  • 실시간 비밀번호 강도 검사: 길이, 대문자, 소문자, 숫자, 기호, 흔한 비밀번호 패턴을 확인해 더 안전한 비밀번호 선택을 돕습니다
  • 무작위 IV 및 salt 생성: 한 번의 클릭으로 암호학적으로 안전한 IV/salt 값을 만들고 UI에 채워 반복 가능한 복호화를 지원합니다
  • 다양한 ciphertext 형식: Hex, Base64, Base64URL을 지원해 API 디버깅, JWT 스타일 전송, 설정 파일, 명령줄 연동에 사용할 수 있습니다
  • GCM authentication tag 처리: 도구가 ciphertext + auth tag를 함께 묶고, ciphertext, 키, IV 또는 salt가 맞지 않으면 검증 실패를 표시합니다
  • 브라우저 전용 Web Crypto: 암호화와 복호화가 로컬 브라우저에서 실행되며 plaintext, ciphertext, 비밀번호, 키는 업로드되지 않습니다
  • 모드 비교 안내: 내장 설명이 GCM, CBC, CTR을 언제 선택해야 하는지와 IV/nonce 재사용이 왜 위험한지 알려 줍니다
  • 개발자 친화적인 복사 흐름: 생성된 키, IV, salt, ciphertext, plaintext를 API 테스트와 문제 해결에 바로 복사할 수 있습니다

이용 방법

  1. 암호화 또는 복호화 모드를 선택한 뒤 AES-GCM, AES-CBC, AES-CTR과 필요한 키 크기를 선택합니다
  2. Hex 키 또는 비밀번호 중 하나를 사용합니다. 비밀번호 모드에서는 강한 비밀번호를 입력하고 PBKDF2가 AES 키를 파생하도록 합니다
  3. ciphertext 형식을 선택합니다: Hex, Base64 또는 Base64URL. 암호화와 복호화 양쪽에서 같은 형식을 유지하세요
  4. 암호화할 때는 IV/salt를 비워 두면 안전한 무작위 값이 자동 생성됩니다. 복호화할 때는 같은 IV/salt를 붙여넣거나 비밀번호 모드에 포함된 헤더를 사용합니다
  5. 출력된 ciphertext 또는 plaintext를 복사하고, 재현 가능한 복호화를 위해 모드, 키 크기, IV, salt, 형식을 함께 보관합니다

자주 묻는 질문

AES-CBC, AES-GCM, AES-CTR의 차이는 무엇인가요?

CBC는 IV가 필요한 전통적인 블록 모드이며, 무결성을 보장하려면 별도의 MAC이 필요합니다. GCM은 인증 암호화(AEAD)로 데이터 변조를 감지할 수 있어 현대적인 API에서 기본 선택으로 권장됩니다. CTR은 AES를 스트림에 가까운 방식으로 바꾸며 빠르고 병렬 처리에 유리하지만, 이 역시 별도의 MAC이 필요합니다. 확신이 없다면 GCM을 선택하는 것이 좋습니다.

PBKDF2 키 파생이란 무엇이며 왜 필요한가요?

PBKDF2는 사람이 기억하기 쉬운 비밀번호를 더 강한 암호화 키로 변환합니다. 이 도구는 각 암호화 작업마다 PBKDF2-SHA256, 100,000회 반복, 무작위 salt를 사용합니다. 비밀번호를 키로 직접 사용하는 것보다 brute force 공격 비용을 높이고, 같은 비밀번호가 같은 파생 키를 만들지 않도록 해 줍니다.

Hex 키 모드와 비밀번호 모드는 어떻게 다른가요?

Hex 키 모드는 32/48/64자의 원시 16진수 키를 사용하며, 백엔드 API나 고정 test vector와 값을 맞춰야 할 때 유용합니다. 비밀번호 모드는 기억 가능한 비밀번호를 입력받아 PBKDF2로 AES 키를 파생하고, salt 정보를 함께 포함하거나 전달해 나중에 같은 비밀번호로 ciphertext를 다시 복호화할 수 있게 합니다.

비밀번호 강도 검사는 무엇을 확인하나요?

도구는 비밀번호 길이, 대문자, 소문자, 숫자, 기호, 흔한 약한 비밀번호 패턴을 확인합니다. 약함/보통/좋음/강함 기준으로 안내해 짧거나 예측 가능한 비밀번호를 피할 수 있게 돕습니다. 민감한 데이터에는 비밀번호 관리자가 생성한 길고 무작위적인 비밀번호를 사용하는 것이 좋습니다.

AES-GCM 복호화가 실패하는 이유는 무엇인가요?

AES-GCM은 authentication tag를 검증합니다. 실패했다면 보통 키나 비밀번호가 틀렸거나, IV 또는 salt가 맞지 않거나, ciphertext가 변경되었거나, 출력 형식을 잘못 디코딩했거나, 다른 AES 모드 또는 키 크기를 선택한 경우입니다. 암호화할 때의 모든 파라미터가 복호화할 때도 정확히 같아야 합니다.

이 온라인 AES 암호화/복호화 도구는 안전한가요?

암호화 연산은 브라우저의 Web Crypto API로 실행되며, 페이지는 plaintext, ciphertext, 비밀번호 또는 키를 업로드하지 않습니다. 개발, API 디버깅, 학습 용도로 적합합니다. 매우 민감한 운영 데이터에는 감사된 로컬 또는 서버 측 도구와 올바른 키 관리를 사용하세요.

지원되는 AES 키 길이는 무엇인가요?

이 도구는 AES-128(16바이트 키), AES-192(24바이트 키), AES-256(32바이트 키)을 지원합니다. AES-256은 가장 강력하고 기본값으로 쓰기 좋은 선택이며, AES-128도 여전히 안전하고 더 빠를 수 있습니다. AES-192는 주로 특정 규정 준수나 상호운용성 요구가 있을 때 사용됩니다.

Hex, Base64, Base64URL 출력은 어떻게 다른가요?

Hex는 읽고 디버깅하기 쉽지만 크기가 큽니다. Base64는 더 compact하며 JSON이나 설정 파일에서 흔히 사용됩니다. Base64URL은 URL에서 불편한 문자를 바꾸고 padding을 제거하므로 URL 파라미터, JWT 스타일 필드, 웹 전송에 적합합니다.

이 도구로 만든 ciphertext는 어떻게 복호화하나요?

비밀번호 모드에서는 salt와 IV가 인코딩된 출력 헤더에 포함되며, 도구가 복호화할 때 이를 추출할 수 있습니다. Hex 키 모드에서는 암호화 단계의 키, IV, 모드, 키 크기, 출력 형식을 보관한 뒤 복호화할 때 같은 값을 입력해야 합니다.

이 도구로 AES 암호화를 배울 수 있나요?

네. GCM, CBC, CTR 사이를 전환하고, 출력 형식을 비교하며, IV와 salt가 결과에 어떤 영향을 주는지 확인할 수 있습니다. 또한 PBKDF2가 비밀번호에서 키를 파생하는 과정도 관찰할 수 있어, 애플리케이션 코드에 구현하기 전에 AES 동작을 이해하는 데 실용적입니다.

AES 암호화/복호화란 무엇인가요?

AES(Advanced Encryption Standard)는 브라우저, TLS 스택, 데이터베이스, 클라우드 서비스, 모바일 앱, 운영체제가 데이터를 보호할 때 사용하는 현대적인 대칭 블록 암호입니다. 암호화와 복호화에 같은 secret key를 사용합니다. 올바른 AES 설정은 키만으로 결정되지 않으며, 모드, IV/nonce, padding 또는 tag 동작, 출력 인코딩까지 함께 맞아야 합니다.

AES-GCM은 새 설계에서 권장되는 기본 선택입니다. AEAD 방식이기 때문에 데이터를 암호화하면서 동시에 인증합니다. 즉 ciphertext, 키, IV, salt, authentication tag 중 하나라도 바뀌면 복호화가 실패합니다. CBC와 CTR은 기밀성만 제공하므로 운영 프로토콜에서는 HMAC-SHA256 같은 별도의 MAC과 함께 사용해야 합니다.

비밀번호 기반 암호화에는 키 파생 함수가 필요합니다. 사람이 만든 비밀번호는 AES 키로 쓰기에 충분히 무작위적이지 않은 경우가 많기 때문에, 이 도구는 PBKDF2-SHA256, 100,000회 반복, 무작위 salt를 사용해 실제 AES 키를 파생합니다. salt는 같은 비밀번호가 같은 파생 키를 만들지 않도록 하고 brute force 공격 비용을 높입니다.

IV와 nonce 처리는 매우 중요합니다. GCM은 일반적으로 12바이트 IV를 사용하며, 같은 키로 같은 IV를 절대 재사용하면 안 됩니다. CBC는 예측 불가능한 16바이트 IV를 사용합니다. CTR은 counter/nonce 구조를 사용하며 재사용 시 치명적인 문제가 생길 수 있습니다. 이 도구는 암호화 중 안전한 IV 값을 자동 생성하고, 복호화에서 같은 파라미터를 재현할 수 있도록 값을 표시합니다.

이 페이지는 개발, 디버깅, 교육, 직접 관리하는 암호화 테스트를 위해 설계되었습니다. 운영 환경의 secret, 규제 대상 데이터, 고객 정보에는 감사된 암호화 라이브러리, 서버 측 키 관리, 접근 제어, audit log, 필요 시 Argon2id 같은 현대적인 KDF를 사용하세요.