Toolonit
  1. 홈
  2. 암호화
  3. RSA 암호화 / 복호화

RSA 암호화·복호화 도구

RSA 공개키로 암호화하고 개인키로 복호화합니다(OAEP, PKCS#1 v1.5).

패딩

암호화할 때 쓴 패딩으로 복호화해야 합니다. 요즘 기본값은 OAEP · SHA-256이고, PKCS#1 v1.5는 구형 시스템에만 씁니다.

출력 형식
OpenSSL로 복호화하기 (.bin 파일):
openssl pkeyutl -decrypt -inkey private.pem -in ciphertext.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256

상대방의 RSA 공개키(또는 인증서)로 짧은 비밀 값을 암호화해 개인키를 가진 사람만 읽게 하거나, 내 개인키로 암호문을 복호화합니다. 패딩은 OAEP · SHA-256(권장), OAEP · SHA-1, PKCS#1 v1.5 중에서 고르고, 결과는 Base64나 hex로 나오며 OpenSSL과 호환됩니다. 모든 처리는 브라우저 안에서 이루어져 키와 메시지가 기기 밖으로 나가지 않으며, 무료이고 가입도 필요 없습니다.

RSA로 암호화·복호화하는 방법

  1. 암호화나 복호화를 고르고 키를 붙여 넣거나 키 파일을 엽니다. 암호화에는 공개키나 인증서, 복호화에는 개인키(PKCS#8 또는 PKCS#1)를 씁니다.
  2. 패딩을 고릅니다. 상대가 따로 요구하지 않으면 OAEP · SHA-256을 씁니다.
  3. 메시지를 입력하거나 암호문을 Base64·hex로 붙여 넣습니다. 입력하는 대로 결과가 나옵니다.
  4. 결과를 복사하거나, 암호문을 OpenSSL용 .bin 파일로 내려받습니다.

주요 기능

  • 공개키, 인증서, 개인키의 공개키 부분으로 암호화하고 개인키로 복호화
  • OAEP · SHA-256(기본), OAEP · SHA-1, PKCS#1 v1.5 패딩
  • PEM·DER 키: SPKI, PKCS#1, PKCS#8, X.509 인증서, 16384비트까지
  • 암호문은 Base64·hex 또는 .bin 파일로, 복호화는 붙여 넣은 Base64·hex나 연 .bin 파일로
  • 키와 패딩에 따라 암호화할 수 있는 최대 바이트 수와 같은 일을 하는 openssl pkeyutl 명령 표시
  • 브라우저 안의 WebAssembly 워커에서 실행

개인정보는 안전한가요?

네. 암호화와 복호화는 브라우저 안의 WebAssembly 워커에서 실행되며, 키와 메시지, 암호문을 업로드하거나 저장하지 않습니다.

자주 묻는 질문

메시지는 얼마나 길게 암호화할 수 있나요?

RSA는 블록 하나만 암호화합니다. 2048비트 키라면 OAEP SHA-256은 190바이트, OAEP SHA-1은 214바이트, PKCS#1 v1.5는 245바이트까지이고, 키가 클수록 늘어납니다. 더 긴 데이터는 대칭 암호로 암호화하거나 파일 암호화 도구를 쓰세요.

왜 암호문이 매번 달라지나요?

모든 패딩이 암호화 전에 무작위 바이트를 넣기 때문에 같은 메시지도 매번 다른 암호문이 됩니다. 원래 그렇게 설계된 것이고, 어느 암호문이든 같은 메시지로 복호화됩니다.

OpenSSL과 호환되나요?

네. 여기서 만든 암호문은 openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256(또는 rsa_padding_mode:pkcs1)로 복호화되고, openssl pkeyutl -encrypt로 만든 암호문은 여기서 복호화됩니다. 양쪽에서 같은 패딩을 쓰세요.

어떤 키 형식을 쓸 수 있나요?

PEM 공개키(BEGIN PUBLIC KEY, BEGIN RSA PUBLIC KEY), 인증서, 비밀번호가 없는 PKCS#8(BEGIN PRIVATE KEY)·PKCS#1(BEGIN RSA PRIVATE KEY) 개인키를 쓸 수 있고, DER 파일도 됩니다. 비밀번호로 보호된 키와 OpenSSH 키는 먼저 변환해야 하며, 도구가 방법을 알려 줍니다.

복호화가 안 되는 이유는 무엇인가요?

대개 패딩이나 키 때문입니다. 암호화할 때 쓴 패딩과 같은 패딩으로, 그 공개키와 짝인 개인키로 복호화해야 합니다. 도구는 일부러 둘을 구분해 알려 주지 않으니 다른 패딩도 시도해 보세요. 암호문은 항상 키 길이와 같으므로(2048비트 키면 256바이트) 더 짧다면 복사할 때 잘린 것입니다.

관련 도구