0 lines
1
SHA-256 (권장)

-

MD5 (레거시)

-

SHA-1 (레거시)

-

해시 단방향 암호화

원본 복원 불가능 - 동일 입력 → 동일 출력

  • 입력 크기와 무관하게 고정 길이 출력
  • 아주 작은 변경도 완전히 다른 결과
  • 해시값만으로 원본 유추 불가
용도
비밀번호 저장, 파일 무결성 검증, 데이터 중복 확인, 디지털 서명

Base64 양방향 인코딩

원본 복원 가능 - 인코딩 ↔ 디코딩

  • 입력 크기에 비례하여 출력 크기 증가
  • 암호화가 아닌 단순 형식 변환
  • 누구나 디코딩으로 원본 확인 가능
용도
이미지를 텍스트로 변환, URL 안전 문자열, 이메일 첨부파일 인코딩

텍스트 해시란?

텍스트 해시는 문자열 입력을 고정 길이의 해시값으로 변환하는 단방향 암호화 함수입니다. 동일한 입력은 항상 동일한 해시를 생성하지만, 해시값으로부터 원본 텍스트를 복원하는 것은 계산적으로 불가능합니다. 이 성질을 이용하여 비밀번호 저장, 데이터 무결성 확인, 중복 감지 등에 활용합니다.

이 도구는 텍스트를 입력하면 SHA-256, MD5, SHA-1 세 가지 알고리즘의 해시값을 실시간으로 계산합니다. 모든 처리는 브라우저의 Web Crypto API와 JavaScript로 수행되며, 서버로 데이터가 전송되지 않습니다.

해시 vs Base64: 핵심 차이점

해시(단방향)는 입력 크기와 무관하게 고정 길이 출력을 생성하며, 원본 복원이 불가능합니다. 비밀번호 저장, 파일 무결성 검증, 데이터 중복 확인, 디지털 서명에 사용됩니다.

Base64(양방향)는 입력 크기에 비례하여 출력이 증가하며, 누구나 디코딩으로 원본을 확인할 수 있습니다. 이미지를 텍스트로 변환, URL 안전 문자열, 이메일 첨부파일 인코딩에 사용됩니다. 보안 목적으로는 사용할 수 없습니다.

해시 알고리즘 비교

SHA-256은 256비트(64자) 해시를 생성하며, 현재 충돌 공격이 발견되지 않아 보안 용도로 권장됩니다. MD5는 128비트(32자) 해시를 생성하며 속도가 빠르지만 충돌 취약성이 있어 레거시 호환 용도로만 사용합니다. SHA-1은 160비트(40자) 해시를 생성하나 2017년 충돌 사례가 시연되어 새로운 프로젝트에서는 사용을 피해야 합니다.

실무 활용 사례

비밀번호 저장 — 사용자 비밀번호를 평문으로 저장하지 않고, 해시값을 저장하여 로그인 시 입력값의 해시와 비교합니다. 실제 프로덕션에서는 bcrypt, scrypt, Argon2 같은 전용 해싱 알고리즘을 사용합니다.

데이터 무결성 확인 — API 응답이나 구성 파일의 내용이 변경되지 않았는지 해시를 비교하여 검증합니다.

중복 콘텐츠 감지 — 대량의 텍스트 데이터에서 동일한 내용을 해시값으로 빠르게 식별할 수 있습니다. 문자열 전체를 비교하는 것보다 효율적입니다.

SRI(Subresource Integrity) — CDN에서 로드하는 외부 스크립트나 스타일시트의 해시를 HTML의 integrity 속성에 지정하여 변조를 방지합니다.

사용 시 주의사항

입력 인코딩 주의 — 동일한 텍스트라도 UTF-8과 UTF-16으로 인코딩하면 다른 해시가 생성됩니다. 이 도구는 UTF-8을 기준으로 계산합니다.

공백/줄바꿈 민감 — 문자열 끝의 공백이나 줄바꿈 문자(LF vs CRLF)가 다르면 해시가 달라집니다. 비교 시 입력값의 공백 처리를 통일하세요.

비밀번호 해싱 용도 — 이 도구의 SHA-256/MD5는 범용 해시이며, 실제 비밀번호 저장에는 salt와 반복 횟수를 적용하는 bcrypt, Argon2 등의 전용 알고리즘을 사용해야 합니다.

자주 묻는 질문

해시값으로 원문을 복원할 수 있나요?

일반적으로 복원할 수 없습니다. 해시는 단방향 함수로, 해시값으로부터 원본 데이터를 복원하는 것은 계산적으로 불가능합니다. 다만 짧고 단순한 문자열은 레인보우 테이블이나 무차별 대입으로 찾아낼 수 있으므로, 비밀번호는 충분한 길이와 복잡성을 유지해야 합니다.

해시와 Base64의 차이점은 무엇인가요?

해시는 단방향 암호화로 원본 복원이 불가능하며, 입력 크기와 무관하게 고정 길이 출력을 생성합니다. Base64는 양방향 인코딩으로 누구나 디코딩할 수 있으며, 출력 크기가 입력에 비례하여 증가합니다. 해시는 보안/검증 용도, Base64는 데이터 전송 용도입니다.

왜 MD5와 SHA-1도 제공하나요?

레거시 시스템 호환 목적입니다. MD5는 1996년부터, SHA-1은 2017년부터 충돌 취약성이 알려져 있으며, 보안 목적에는 부적합합니다. 새로운 프로젝트에서는 반드시 SHA-256을 사용하세요.

같은 텍스트인데 해시가 다르게 나올 수 있나요?

예. 눈에 보이지 않는 공백, 줄바꿈 문자(LF vs CRLF), 인코딩 차이(UTF-8 vs UTF-16)가 있으면 해시가 달라집니다. 비교 시 입력값의 공백 처리를 통일하세요.

입력 텍스트가 서버로 전송되나요?

아닙니다. 모든 해시 계산은 브라우저의 Web Crypto API와 JavaScript로 수행됩니다. 네트워크 요청이 발생하지 않으며, 개발자 도구의 Network 탭에서 확인할 수 있습니다.

파일 해시와 텍스트 해시의 차이는 무엇인가요?

파일 해시는 파일의 전체 바이트 내용을 해싱하고, 텍스트 해시는 문자열을 UTF-8로 변환한 후 해싱합니다. 동일한 내용의 텍스트 파일이라면 두 방식의 결과가 같지만, BOM(Byte Order Mark)이나 줄바꿈 문자 차이로 다를 수 있습니다. 파일 해시가 필요하면 파일 해시 생성기를 사용하세요.

광고 영역