BIP39 영어 목록에서 무작위 단어 4~8개로 기억하기 쉬운 패스프레이즈를 만듭니다.
AES-GCM 암호화 / 복호화
도구 자체는 영어로 되어 있지만, 이 페이지에서는 귀하의 언어로 설명해 드립니다.
AES-GCM 암호화 / 복호화을(를) 사용하세요
기능
AES-256-GCM과 패스프레이즈로 텍스트를 암호화하거나, 이 도구로 만든 Base64 문자열을 복호화합니다. 키는 패스프레이즈를 SHA-256으로 한 번 해시한 값이므로 길고 무작위적인 패스프레이즈를 사용하세요.
이 서비스는 전적으로 브라우저에서 실행되며, 사용자가 입력한 내용은 전혀 업로드되지 않습니다.
AES-GCM 암호화 / 복호화 사용 방법
- 패스프레이즈 입력. Password / Key에 길고 무작위적인 패스프레이즈를 입력합니다. 이 필드는 빈 값도 받지만, 그러면 아무것도 보호되지 않습니다.
- 텍스트 붙여 넣기. 암호화할 텍스트나 이 도구로 만든 Base64 문자열을 Plaintext / Ciphertext에 넣습니다.
- 암호화 또는 복호화. Encrypt(암호화)를 누르면 Base64 문자열을 얻고, Decrypt(복호화)를 누르면 그런 문자열을 다시 텍스트로 바꿉니다.
- 복사해서 안전하게 공유. Copy를 누르고 Base64는 한 경로로 보냅니다. 패스프레이즈는 직접 만나거나 전화로 알려 주는 등 다른 경로로 공유하세요.
- 복호화 실패 해결. Decrypt에서 Error: wrong key or invalid data가 표시되면 패스프레이즈를 한 글자씩 확인하고 Base64 문자열 전체가 복사되었는지 확인하세요.
예시
짧은 메시지
Meet at the usual place at 10:00.sc/i5ncy6JbuW/+WPWQo6pboxhwf1K3tR7fOW49jHPXbZOVhlKrJEXqGkWJ31PqgI7moKwETaLovN0/tlA==Encrypt는 무작위 12바이트 IV, 암호문, 16바이트 태그를 Base64로 반환하며, 실행할 때마다 결과가 다릅니다. 먼저 Password / Key에 패스프레이즈를 입력하세요. 도구는 빈 패스프레이즈도 받지만, 그러면 아무것도 보호되지 않습니다.
검증 대상
| 신호 | 그 의미는 무엇인가 |
|---|---|
| 키 | 패스프레이즈의 SHA-256 값으로, AES-256 키로 사용됩니다. 솔트도 느린 유도도 없으므로 같은 패스프레이즈는 항상 같은 키가 됩니다. |
| Base64의 처음 16자 | 12바이트 IV입니다. Encrypt는 매번 새로운 무작위 IV를 뽑으므로 같은 텍스트라도 실행할 때마다 출력이 다릅니다. |
| 출력 길이 | 12바이트 IV, 텍스트 바이트, 16바이트 태그가 모두 Base64로 이어집니다. 빈 텍스트는 40자, 23바이트 텍스트는 68자가 됩니다. |
| Error: wrong key or invalid data | 패스프레이즈가 다르거나(대소문자와 공백도 구분), 문자열이 변경 또는 잘렸거나, Base64가 아닙니다. 검증에 실패하면 GCM은 텍스트를 반환하지 않습니다. |
| 형식 헤더 없음 | 출력에는 버전이나 알고리즘 표시도, 연관 데이터(associated data)도 없으므로 다른 소프트웨어가 읽으려면 정확히 이 배치와 키 유도 방식이 필요합니다. |
| Base64 입력 | Decrypt는 Encrypt가 만든 표준 Base64를 기대합니다. 메일 프로그램이 추가한 공백과 줄바꿈은 무시되지만, 문자가 빠지거나 바뀌면 복호화가 실패합니다. |
| 빈 패스프레이즈 허용 | 이 경우 키는 빈 문자열의 SHA-256이 되어 누구나 계산할 수 있으므로, 텍스트는 사실상 암호화되지 않습니다. |
더 많은 예시
샘플 복호화
Password / Key: example passphrase, not a real secret; Ciphertext: AAAAAAAAAAAAAAAAmdUgeZatb2KYwe2btQ+qgA3xKNnswXrrQ6AeKTDSu03TnrvNXygfDecrypt 결과로 Hello from PhishDestroy가 표시됩니다. 이 샘플은 설명용으로만 모두 0인 IV(앞의 AAAAAAAAAAAAAAAA)로 만들었으며, Encrypt는 항상 무작위 IV를 사용합니다.
패스프레이즈의 한 글자를 바꾼 경우
The same ciphertext with Password / Key: Example passphrase, not a real secretError: wrong key or invalid data
빈 텍스트 암호화
Plaintext / Ciphertext empty, any passphrase, Encrypt40자 Base64 문자열(12바이트 IV와 16바이트 태그)이 나오며, 누를 때마다 다릅니다.
자주 묻는 질문
패스프레이즈로 키를 어떻게 만드나요?
AES-256 키는 패스프레이즈를 SHA-256으로 한 번 해시한 값이며, 솔트도 없고 PBKDF2나 Argon2 같은 느린 키 유도도 사용하지 않습니다. 따라서 짧거나 추측하기 쉬운 패스프레이즈는 오프라인에서 빠르게 무차별 대입될 수 있으니, Passphrase Generator 등으로 만든 길고 무작위적인 패스프레이즈를 사용하세요.
출력에는 무엇이 들어 있고, 다른 소프트웨어로 복호화할 수 있나요?
무작위 12바이트 IV, 암호문, 16바이트 GCM 인증 태그를 차례로 이어 붙인 Base64입니다. 패스프레이즈가 틀리거나 바이트가 하나라도 바뀌면 복호화 시 Error: wrong key or invalid data가 표시되며, 다른 소프트웨어는 동일한 SHA-256 키와 바이트 배치를 사용할 때만 복호화할 수 있습니다.
제 텍스트나 패스프레이즈가 어딘가로 전송되나요?
아니요. 암호화는 브라우저에서 Web Crypto API로 실행되며, 패스프레이즈와 텍스트는 업로드되거나 저장되지 않습니다.
여기서 시드 문구를 암호화해도 되나요?
아니요. 지갑 시드 문구는 절대 웹사이트에 입력하지 마세요. 또한 솔트 없는 SHA-256 한 번으로 만든 키는 약한 패스프레이즈를 오프라인 무차별 대입에 노출시킵니다. 시드 문구는 종이나 금속, 하드웨어 지갑처럼 오프라인으로 보관하세요.
다른 소프트웨어로 출력을 복호화할 수 있나요?
네, 같은 배치를 따른다면 가능합니다. 키 = UTF-8 패스프레이즈의 SHA-256, IV = 처음 12바이트, 태그 = 마지막 16바이트, 연관 데이터 없음. Python의 cryptography 패키지와 그 밖의 AES-GCM 라이브러리로 처리할 수 있습니다.
하나의 패스프레이즈를 여러 메시지에 재사용해도 되나요?
메시지마다 새로운 무작위 12바이트 IV가 사용되므로, 재사용해도 실제로 IV가 반복되지는 않습니다. 진짜 위험은 패스프레이즈 자체입니다. 패스프레이즈를 알게 된 사람은 그것으로 만든 모든 메시지를 읽을 수 있습니다.
GCM은 일반 AES에 무엇을 더하나요?
인증 태그입니다. IV, 암호문, 태그 중 어디든 변경되면 감지되며, 변경된 텍스트를 반환하는 대신 복호화가 실패합니다.