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
낮은 위험의 텍스트 붙여넣기
이 도구는 서버 측 Livewire/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를 저장하거나 검증하지 않습니다.
Livewire 액션이 PHP OpenSSL을 실행할 때 사이트 서버에서 처리됩니다. 브라우저 안에서만 실행되는 Web Crypto 도구가 아니므로 가치가 큰 비밀, 개인 키, 민감한 문서는 붙여 넣지 마세요.
Base64 결과에는 무작위 IV와 그 뒤의 원시 암호문이 들어갑니다. CBC padding이 바이트를 추가할 수 있고, Base64는 바이너리 데이터를 약 3분의 1 더 크게 만듭니다. 저장 형식에는 salt나 인증 tag가 없습니다.
이 도구는 텍스트만 처리하며 낮은 위험의 짧은 내용에 한정하는 편이 좋습니다. 파일이나 중요한 비밀에는 age, GnuPG, 7-Zip 같은 감사된 오프라인 암호화 도구를 사용하세요.
관련 도구
A1Z26 암호 인코더
A1Z26 암호(A=1, B=2, ... Z=26)로 텍스트를 인코딩하거나 숫자열을 다시 글자로 디코딩합니다. 구분자도 사용자 지정할 수 있습니다.
Atbash 암호 인코더
A-Z를 Z-A로 매핑하는 히브리식 치환 암호 Atbash로 텍스트를 인코딩하거나 디코딩합니다. 같은 연산으로 암호화와 복호화를 모두 처리합니다.
단어 수 세기
에세이, 게시물, 캡션, 메타 설명을 위해 단어, 글자, 문장, 단락 수를 세고 읽기 시간, 말하기 시간, 키워드 밀도, Flesch 가독성 점수까지 확인하세요.
바코드 생성기
Code 128, Code 39, EAN-13, UPC-A, ITF-14, Codabar로 스캔 가능한 1D 바코드를 만드세요. 인쇄용 PNG, SVG, PDF로 내보낼 수 있습니다.
비밀번호 생성기
암호학적으로 안전한 난수를 사용해 길이, 기호, 숫자, 대문자와 소문자를 조정한 강력한 무작위 비밀번호를 생성합니다.
Excel-PDF 변환기
XLSX, XLS, CSV 파일을 브라우저에서 가로 A4 PDF로 변환합니다. 각 워크시트가 깔끔한 표 페이지로 만들어져 다운로드됩니다.