예시
입력 (인코딩 모드)
안녕하세요 yutils 👋
출력
7JWI64WV7ZWY7IS47JqUIHl1dGlscyDwn5GL
참고
UTF-8 기반 인코딩이므로 한글·이모지가 그대로 복원됩니다. 결과 문자열은 ASCII 안전 — 이메일·HTTP 헤더·JSON에 그대로 실어 보낼 수 있습니다.
사용법 / 자주 묻는 질문
이런 경우 사용하세요
- API 응답에 박힌 Base64 문자열을 사람이 읽을 수 있는 텍스트로 풀어보기
- 이메일·HTTP 헤더에 ASCII 외 문자를 안전하게 실어 보낼 때 인코딩
- Basic Auth 헤더용 `username:password` 문자열 생성
- 한글·이모지 등 멀티바이트 문자를 UTF-8로 안전하게 변환
- `data:` URI 스킴 이미지 안에 담긴 페이로드 살펴보기
자주 묻는 질문
- Q.브라우저의 btoa / atob과 뭐가 다른가요?
- A.JS 내장 btoa / atob은 latin-1 범위만 처리해서 한글·이모지 입력은 깨집니다. yutils는 TextEncoder / TextDecoder를 사용해 UTF-8 왕복을 안전하게 보장합니다.
- Q.결과를 그대로 URL에 넣어도 되나요?
- A.표준 Base64에는 `+` `/` `=`가 들어가서 URL 규약과 충돌합니다. URL 안전 인코딩이 필요하면 Base64URL(JWT가 쓰는 방식)을 쓰거나 결과를 URL Encode 도구에 한 번 더 통과시키세요.
- Q.Base64가 암호화인가요?
- A.아닙니다. Base64는 가역적인 인코딩 방식일 뿐 누구나 디코딩할 수 있습니다. 비밀번호·시크릿 보호가 필요하면 SHA-256·bcrypt·HMAC 도구를 쓰세요.
재미있는 사실
Base64의 `64`는 출력 alphabet 크기입니다. 6비트 정수(2⁶=64)가 비트 시프트로 깔끔하게 떨어지는 sweet spot이라 정해졌습니다. 만약 Base65였다면 6비트로 표현이 안 되어 모든 디코더 코드가 훨씬 복잡해졌을 거예요.
RFC 4648Base64로 인코딩하면 데이터가 약 33% 커집니다. 3바이트(24비트)가 4글자(각 6비트)가 되니까요. 즉, 1 MB 이미지를 Base64로 인라인하면 약 1.33 MB가 됩니다 — `data:` URI 이미지가 의외로 무거운 이유.
Wikipedia — Base64Base64는 1987년 이메일 표준 PEM(Privacy-Enhanced Mail, RFC 989)에서 처음 등장했습니다. SMTP 시대에 ASCII가 아닌 바이트(이미지·한글 등)를 7비트 ASCII 채널로 안전하게 통과시키기 위해 발명됐고, 그 본질은 지금도 변함없습니다.
RFC 989 (1987)
관련 도구
- URL 인코딩 / 디코딩
URL에 사용할 수 있도록 텍스트를 퍼센트 인코딩하거나 인코딩된 URL을 디코딩합니다. 브라우저에서 즉시 실행됩니다.
- UUID / ULID 생성기
UUID v4(랜덤) · UUID v7(시간 순서, RFC 9562) · ULID를 브라우저에서 생성합니다.
- JWT 디코더
JWT(JSON Web Token)의 header와 payload를 디코딩하여 표시합니다. 서명 검증은 수행하지 않으며(공개키 필요), 토큰은 브라우저에서만 처리됩니다.
- JWT 생성기 (HMAC)
HS256/HS384/HS512(HMAC-SHA) 알고리즘으로 서명된 JWT를 생성합니다. payload·secret 모두 브라우저에서만 처리 — Web Crypto API 기반.
- SHA 해시
텍스트의 SHA-1·SHA-256·SHA-384·SHA-512 해시를 계산합니다. 브라우저의 Web Crypto API를 사용하며 데이터가 서버로 전송되지 않습니다.
- Hex 인코딩 / 디코딩
텍스트를 16진수로 인코딩하거나 디코딩합니다. UTF-8을 자동 처리하며 공백을 무시합니다.
- HTML 엔티티 인코딩 / 디코딩
HTML 특수 문자(&, <, >, ", ')를 엔티티로 인코딩하거나, 이름/숫자 엔티티를 텍스트로 디코딩합니다.
- 비밀번호 생성기
암호학적으로 안전한 비밀번호·토큰·랜덤 문자열·패스프레이즈를 생성하고 엔트로피를 표시합니다.
- 진수 변환기
BigInt 기반으로 큰 정수까지 2/8/10/16/36진수 변환. 0b/0o/0x 자동 감지.
- URL 파서
URL을 프로토콜·호스트·경로·쿼리·해시로 분해해 한눈에 보여줍니다 (읽기 전용).
- HMAC 생성기
Web Crypto API로 SHA-1/256/384/512 HMAC을 계산합니다. 서명·검증 키 기반.
- HMAC 검증기
주어진 HMAC 서명이 message + secret 으로 만든 값과 일치하는지 검증합니다. Web Crypto API + constant-time 비교.
- MD5 해시
텍스트의 MD5 해시를 계산합니다. 주의: MD5는 보안용으로 부적합 — 체크섬·레거시 호환에만 사용.
- Punycode (국제화 도메인)
한글·다국어 도메인을 Punycode(xn-- ASCII)로 상호 변환합니다. 브라우저 native URL 사용.
- HTTP 상태 코드
HTTP 상태 코드(1xx-5xx)를 검색·탐색합니다. 설명과 일반 사용 사례 포함.
- User-Agent 파서
User-Agent 문자열을 브라우저·OS·기기·엔진별로 분해합니다.
- Bcrypt 해시
Bcrypt로 비밀번호를 해시하거나 기존 해시와 평문을 검증합니다. salt rounds 조정 가능.
- 쿠키 파서
Cookie 또는 Set-Cookie 문자열을 표로 분해합니다. percent-encoded 값 복원 + Set-Cookie 속성(Path/Domain/Max-Age/SameSite/HttpOnly/Secure) 인식.
- IP / CIDR 계산기
IPv4 주소와 CIDR로 네트워크 주소·브로드캐스트·호스트 범위·서브넷 마스크·호스트 수를 계산합니다.
- cURL 빌더
URL·method·헤더·본문으로 cURL 명령을 만듭니다. JSON content-type 자동.