AES 암호화 / 복호화
텍스트와 passphrase를 붙여 넣으면 선택한 PHP OpenSSL cipher로 AES 암호화 또는 복호화를 빠르게 실행합니다. AES는 NIST가 FIPS 197에서 표준화한 대칭 블록 암호이며 TLS, WPA2, VPN, 디스크 암호화 등 많은 시스템에서 쓰입니다. 다만 이 페이지는 낮은 위험의 텍스트를 위한 편의 도구이지, 감사를 거친 비밀 보관소가 아닙니다. 민감한 파일이나 오래 보관할 비밀에는 age, GnuPG, 7-Zip 같은 오프라인 도구를 사용하세요.
AES로 텍스트를 암호화하는 방법
-
1
OpenSSL cipher 선택
현재 옵션에는 CBC, CTR, GCM 변형이 포함됩니다. CBC와 CTR 출력은 인증되지 않으며, 이 도구는 GCM 인증 tag를 저장하거나 검증하지 않습니다.
-
2
passphrase 입력
passphrase는 AES 키를 만들기 위해 SHA-256으로 한 번 해시됩니다. PBKDF2, salt, Argon2, work factor가 없으므로 길고 무작위인 passphrase를 사용하세요.
-
3
낮은 위험의 텍스트 붙여넣기
이 도구는 서버 측 PHP OpenSSL 유틸리티입니다. 이 사이트로 보내고 싶지 않은 비밀번호, 운영 키, 개인 문서, 비밀은 붙여 넣지 마세요.
-
4
Base64 결과 복사
암호화할 때 무작위 IV를 만들고, 원시 암호문 앞에 붙인 뒤 결합된 바이트를 Base64로 인코딩합니다. 복호화에는 같은 cipher와 passphrase가 필요합니다.
이 도구가 실제로 출력하는 것
이 구현은 PHP OpenSSL을 사용합니다. 암호화 시 passphrase를 SHA-256으로 해시하고, 선택한 cipher가 요구하는 길이의 무작위 IV를 만든 뒤, 텍스트를 암호화하고 다음을 반환합니다.
Base64(IV || 암호문)
출력에는 salt, PBKDF2 파라미터, HMAC, GCM 인증 tag가 포함되지 않습니다. Web Crypto, age, GnuPG, OpenSSL 명령줄 레시피, 7-Zip이 만드는 형식과 호환되지 않습니다.
AES 옵션의 맥락
AES는 고정 128비트(16바이트) 블록 크기와 128, 192, 256비트 표준 키 크기를 가집니다. 여기서 중요한 보안 차이는 키 크기만이 아니라, 암호화된 메시지가 인증되는지 여부입니다.
| Cipher 옵션 | 이 도구에서 알아둘 점 |
|---|---|
| AES-128-CBC / AES-192-CBC / AES-256-CBC | 무작위 IV와 PKCS#7 padding을 쓰는 일반적인 블록 모드입니다. 변조 탐지를 위해 HMAC-SHA-256 같은 별도 MAC이 필요합니다. |
| AES-256-CTR | AES를 스트림처럼 쓰는 모드입니다. 별도 인증이 필요하며, 같은 키로 같은 IV/counter를 절대 재사용하면 안 됩니다. |
| AES-128-GCM / AES-256-GCM | GCM은 보통 AEAD 모드이지만 인증 tag를 저장하고 검증할 때만 그렇습니다. 이 도구의 출력에는 그 tag가 없으므로 인증 암호화로 신뢰하지 마세요. |
보안 주의사항
OWASP의 암호화 저장 가이드는 가능하면 인증 암호화를 쓰거나, 암호화와 별도 MAC을 함께 쓰라고 권장합니다. 이 도구를 사용할 때는 다음을 기억하세요.
- 대칭 암호화입니다 - 같은 passphrase로 복호화합니다. passphrase는 암호문과 다른 채널로 공유하세요.
- 약한 passphrase는 여기서 약한 키가 됩니다 - SHA-256은 빠르고 salt가 없어서, 공격자가 출력을 얻으면 추측을 빠르게 시험할 수 있습니다.
- CBC와 CTR에는 인증이 필요합니다 - HMAC이나 다른 MAC이 없으면 공격자가 암호문을 바꿔도 감지하지 못할 수 있습니다.
- 같은 키로 IV나 nonce를 재사용하지 마세요 - 도구는 암호화할 때 새 무작위 IV를 만들지만, 붙여 넣은 외부 데이터도 같은 규칙을 지켜야 합니다.
- 진짜 비밀에는 감사된 도구를 사용하세요 - age, GnuPG, 7-Zip은 파일 형식, metadata, 인증을 더 신중하게 처리합니다.
자주 묻는 질문
현재 컴포넌트는 passphrase를 SHA-256으로 해시하고 나온 바이트를 OpenSSL의 키 재료로 사용합니다. PBKDF2, salt, scrypt, Argon2를 쓰지 않으므로 짧거나 재사용한 passphrase는 위험합니다.
아니요. CBC와 CTR에는 HMAC-SHA-256 같은 별도 MAC이 필요합니다. GCM은 보통 AEAD 인증을 제공하지만, 이 도구는 Base64 출력 안에 GCM tag를 저장하거나 검증하지 않습니다.
액션이 PHP OpenSSL을 실행할 때 사이트 서버에서 처리됩니다. 브라우저 안에서만 실행되는 Web Crypto 도구가 아니므로 가치가 큰 비밀, 개인 키, 민감한 문서는 붙여 넣지 마세요.
Base64 결과에는 무작위 IV와 그 뒤의 원시 암호문이 들어갑니다. CBC padding이 바이트를 추가할 수 있고, Base64는 바이너리 데이터를 약 3분의 1 더 크게 만듭니다. 저장 형식에는 salt나 인증 tag가 없습니다.
이 도구는 텍스트만 처리하며 낮은 위험의 짧은 내용에 한정하는 편이 좋습니다. 파일이나 중요한 비밀에는 age, GnuPG, 7-Zip 같은 감사된 오프라인 암호화 도구를 사용하세요.
관련 도구
숫자-문자 암호
퍼즐, 수수께끼, 방탈출 단서에 쓰이는 A=1, B=2 암호(A1Z26)로 숫자를 문자로, 문자를 숫자로 변환하세요.
파일 해시 계산기
붙여 넣은 텍스트나 파일 내용의 MD5, SHA-1, SHA-256, SHA-512 해시를 계산하여 다운로드와 파일 무결성을 확인하세요.
비즈네르 암호 인코더
키워드를 사용해 고전 비즈네르 암호로 메시지를 암호화하고 복호화하세요. 라틴 문자 A-Z를 이동하며 대소문자, 공백, 문장 부호를 보존합니다.
랜덤 API 키 생성기
서버에서 8~128자의 16진수, base64url, 영숫자 API 키 또는 UUIDv4를 생성합니다.
패스프레이즈 생성기
무작위 일반 단어로 기억하기 쉬운 패스프레이즈를 생성합니다. 단어 수, 구분 문자, 대문자화, 뒤에 붙이는 숫자를 조절할 수 있습니다.
Wei → Ether 변환기
Wei를 Ether(ETH)로 부동소수점 반올림 없이 정확하게 변환합니다. 1 ETH = 10^18 Wei.
이 도구는 다른 언어로도 제공됩니다
- เข้ารหัส / ถอดรหัส AES [TH]
- Szyfrowanie i odszyfrowywanie AES [PL]
- Mã hóa / giải mã AES [VI]
- Enkripsi / Dekripsi AES [ID]
- تشفير / فك تشفير AES [AR]
- AES Verschlüsseln / Entschlüsseln [DE]
- AES暗号化 / 復号 [JA]
- Criptografar / Descriptografar AES [PT]
- Cifrado / Descifrado AES [ES]
- AES kryptera / dekryptera [SV]
- Chiffrement / Déchiffrement AES [FR]
- AES versleutelen / ontsleutelen [NL]
- AES Encrypt / Decrypt [EN]
- AES Crittografia / Decrittografia [IT]
- Шифрование / расшифровка AES [RU]
- AES Şifrele / Şifre Çöz [TR]
- AES 加密 / 解密 [ZH]