DES 암호화·복호화
옛 데이터를 위한 DES 암호화·복호화.
DES은(는) 오늘날 기준으로 약한 암호입니다. 옛 데이터를 읽을 때만 쓰고, 새 데이터에는 AES나 ChaCha20을 쓰세요. AES로 이동
복호화할 때 다시 필요합니다. 입력한 내용은 이 페이지 밖으로 나가지 않습니다.
OpenSSL 기본값은 10,000입니다. 원하는 값을 직접 넣을 수도 있습니다. 클수록 비밀번호를 추측하기 어려워지며, 복호화할 때도 같은 값이 필요합니다.
OpenSSL에서 가장 흔한 선택. IV가 필요하고 블록 단위로 패딩합니다.
openssl enc -des-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider defaultOpenSSL이 비밀번호를 묻습니다. 텍스트를 붙여 넣거나 -in, -out 파일을 지정하세요.
DES(Data Encryption Standard)는 1977년에 나온 암호로, 8바이트 블록을 64비트 키로 암호화하며 그중 56비트만 실제 키이고 나머지 8비트는 패리티 비트입니다. 이미 오래전에 모든 키를 대입하는 방법으로 깨졌지만 옛 파일, 설정, 데이터베이스에는 DES로 암호화된 값이 아직 남아 있고, 이 페이지는 그런 값을 읽고 씁니다. 기본은 CBC 모드이고 ECB, CFB, OFB, CTR도 고를 수 있으며, openssl enc -pbkdf2 형식의 비밀번호나 hex 16자리 키와 IV를 씁니다. 옛 데이터를 꺼낸 뒤에는 AES로 다시 암호화하세요. 모든 처리는 브라우저 안에서 이루어져 데이터와 키가 기기 밖으로 나가지 않으며, 무료이고 가입도 필요 없습니다.
DES 암호문 복호화하는 방법
- 복호화를 고르고 Base64·hex 텍스트를 붙여 넣습니다(형식은 자동으로 알아냅니다). 암호화하려면 암호화를 고르고 텍스트를 입력합니다.
- 비밀번호를 입력하거나, 키·IV(hex)로 바꿔 16자리 키와 16자리 IV를 입력합니다(ECB는 IV가 없습니다).
- 데이터를 만들 때 쓴 모드를 고릅니다. 대개 CBC나 ECB입니다. PKCS#7 패딩 없이 암호화된 데이터일 때만 패딩 없음을 켭니다.
- 결과를 복사하거나 내려받습니다. 텍스트가 아닌 바이트는 hex로 보여 줍니다.
주요 기능
- 64비트 키(실제 키 56비트 + 패리티 8비트)의 DES
- CBC, ECB, CFB, OFB, CTR 모드, PKCS#7 패딩 또는 패딩 없음
- openssl enc -pbkdf2 형식의 비밀번호 방식, PBKDF2 반복 횟수 자유롭게 지정
- hex 16자리 키와 IV를 입력하거나 생성하는 키·IV 방식
- OpenSSL 3의 legacy 공급자를 넣은, 같은 작업을 하는 openssl 명령 표시
- Base64·hex 입력 자동 인식, 텍스트가 아닌 결과는 hex로 보여 주고 바이트로 저장
개인정보는 안전한가요?
네. DES 계산은 브라우저 안의 WebAssembly가 하므로, 복호화하는 옛 데이터와 그 키나 비밀번호는 어디로도 업로드되거나 저장되지 않습니다.
자주 묻는 질문
DES 암호화는 안전한가요?
아니요. 56비트 키는 모든 경우를 대입해 찾을 수 있습니다. 1998년에 전용 장비로 풀렸고, 지금은 훨씬 적은 비용으로 가능합니다. 이미 DES로 암호화된 데이터를 읽을 때만 쓰고, 읽은 뒤에는 AES나 ChaCha20으로 다시 암호화하세요.
OpenSSL에서 “Error setting cipher DES-CBC”가 나와요.
OpenSSL 3이 DES를 기본으로 불러오지 않는 legacy 공급자로 옮겼기 때문입니다. 함께 불러오세요. echo 'U2FsdGVkX1…' | openssl enc -d -des-cbc -pbkdf2 -iter 10000 -a -A -provider legacy -provider default. 다른 모드는 -des-ecb, -des-cfb, -des-ofb를 쓰며(OpenSSL에는 DES CTR이 없습니다), 키·IV 방식이라면 -pbkdf2 -iter 대신 -K <hex 16자리> -iv <hex 16자리>를 씁니다.
DES 키는 어떻게 생겼나요?
8바이트, hex로 16자리입니다. 각 바이트의 가장 낮은 비트는 DES가 쓰지 않는 패리티 비트라서, 그 비트만 다른 키는 똑같이 복호화됩니다. IV도 8바이트이고 ECB는 IV를 쓰지 않습니다. 비밀번호 방식에서는 키와 IV를 비밀번호로 만들므로 둘 다 필요 없습니다.
DES와 Triple DES는 무엇이 다른가요?
Triple DES는 DES를 키 세 개로 세 번 돌립니다. 키는 192비트이고 실제 강도는 약 112비트라서 DES보다 오래 쓰였습니다. DES는 56비트 키 하나라 모든 키를 대입해 풀 수 있습니다. 키가 16바이트나 24바이트라면 Triple DES 데이터이니 Triple DES 페이지를 쓰세요.
왜 알아볼 수 없는 결과가 나오나요?
비밀번호나 키, 반복 횟수, 모드, 패딩 중 하나가 암호화할 때와 다르기 때문입니다. CFB, OFB, CTR에서는 DES가 틀린 것을 알아내지 못해 무작위 바이트를 돌려주며, 페이지는 이를 hex로 보여 줍니다. CBC와 ECB에서는 대개 오류가 납니다.