HTTP Basic 인증 인코더/디코더
username:password를 Base64 Authorization: Basic 헤더로 인코딩 — 또는 기존 헤더 붙여넣어 누군지 확인.
YWxpY2U6d29uZGVybGFuZA==
Authorization: Basic YWxpY2U6d29uZGVybGFuZA==curl -H "Authorization: Basic YWxpY2U6d29uZGVybGFuZA==" https://api.example.com
Basic 인증은 base64(user:pass)일 뿐이라 되돌릴 수 있습니다. HTTPS에서만 안전하며, 가능하면 다른 방식(Bearer, mTLS)을 쓰세요.
사용법
- 인코드 모드: 사용자명·비밀번호 입력 → Base64 토큰·전체
Authorization헤더·curl 명령 아래 표시. - 디코드 모드: 어떤
Authorization: Basic …줄(또는 Base64 부분만) 붙여넣기 → 안에 있는 사용자명·비밀번호 확인. - 필요한 출력 복사 — Basic 자격은 HTTPS만.
자세한 설명
펼치기접기
RFC 7617 기본 인증은 base64(사용자이름:비밀번호)를 Authorization: Basic 헤더에 붙인 것일 뿐입니다. 이 툴은 브라우저에서 인코딩과 디코딩을 양방향으로 처리하고 네트워크 호출 없이 바로 붙여 넣을 수 있는 curl 조각을 만들어 줍니다. 경고가 흔한 함정을 잡아 줍니다. 사용자 이름에 든 콜론(기본 인증은 첫 :를 구분자로 쓰므로 자격 증명이 잘못 해석됩니다), 비ASCII 문자(RFC 7617은 문자 집합을 고를 수 있게 하지만 대부분의 서버는 UTF-8을 기대합니다), 그리고 빈 자격 증명입니다.
Base64는 암호화가 아니라 인코딩이고, 바로 이 툴의 디코딩 방향이 그 증명입니다. 헤더를 쥔 사람은 누구나 비밀번호를 평문으로 쥐는 셈이라, 기본 인증은 TLS 위에서만 안전하고 기록에 남는 곳에는 어울리지 않습니다. 프록시, 접근 로그, 브라우저 기록, 오류 보고서가 모두 요청 헤더를 일상적으로 담으며, 그중 어디에든 나타난 자격 증명은 노출된 것으로 취급해야 합니다.
첫 콜론에서 자른다는 규칙은 기억해 둘 값어치가 있습니다. 비밀번호는 콜론을 원하는 만큼 담을 수 있는데 첫 콜론 뒤는 전부 비밀번호이기 때문이고, 반면 사용자 이름은 콜론을 하나도 담을 수 없습니다. 서버가 엉뚱한 자리에서 자르고 이름의 일부를 비밀번호의 시작으로 읽을 것이기 때문입니다. 이스케이프 수단이 없으므로 콜론이 든 사용자 이름은 아예 표현할 수 없습니다.
브라우저는 자격 증명이 한 번 받아들여지면 해당 영역에 대해 그것을 캐시하는데, 프로토콜에는 로그아웃이 없습니다. 지우려면 브라우저를 닫거나, 대부분의 클라이언트에서는 일부러 틀린 자격 증명으로 URL을 방문해야 합니다. 진짜 로그아웃이 필요한 애플리케이션이 기본 인증을 쓰지 않는 이유가 이것입니다.
여기의 모든 처리는 입력한 내용에 대해 로컬에서 이루어지므로, 실제 자격 증명을 붙여 넣어도 아무 데도 전송되지 않습니다. 이것은 이 페이지의 성질이지 헤더의 성질이 아닙니다. 일단 요청에 실리면 그 요청이 가는 곳이면 어디든 따라갑니다.
자주 묻는 질문
Basic 인증 안전?
HTTPS일 때만. Base64는 가역적 — 헤더 캡처한 사람 누구나 디코드 가능. 토큰을 평문 비밀번호처럼 취급.
왜 콜론에 사용자명 경고?
Basic 인증 문법은 첫 콜론에서 분할. 사용자명에 : 포함 시, 서버는 첫 : 이후 모든 걸 비밀번호로 읽음 → 실제 비밀번호가 와이어에서 사용자명에 추가됨.
자격 증명이 예상 못 한 곳에 남는 이유는?
이 헤더는 해당 영역으로 가는 모든 요청에 실려 가고, 경로상의 모든 것이 그것을 기록할 수 있기 때문이다. 헤더를 로그로 남기는 프록시, 요청을 통째로 잡아두는 오류 추적기, 세션 동안 자격 증명을 보관하는 브라우저가 그렇다. Base64는 암호화가 아니라 인코딩이므로, 헤더 사본을 가진 사람은 비밀번호 자체를 가진 것이다.
사용자 이름과 비밀번호의 비ASCII 문자 규칙은?
RFC 7617은 서버가 인증 요구에 charset="UTF-8"을 실어 UTF-8을 요청할 수 있게 한다. 하지만 옛 클라이언트와 서버는 단일바이트 인코딩을 가정했고, 같은 악센트 문자나 비라틴 문자에 대해 둘은 다른 바이트를 만든다. 한 클라이언트에서 되는 비밀번호가 다른 클라이언트에서는 쓸모 있는 오류도 없이 실패하는 이유가 이것이다. 양쪽 끝을 통제할 수 없다면 Basic 자격 증명은 ASCII로 유지하라.
관련 도구
Cache-Control 헤더 빌더
체크리스트로 HTTP Cache-Control 헤더 생성 — 프레시니스·재검증·immutable·자주 쓰는 프리셋.
네트워크
OAuth 2.0 PKCE 생성기
OAuth 2.0 PKCE(RFC 7636)용 code_verifier + S256/plain code_challenge 생성. authorization URL과 토큰 교환 curl까지 자동 작성.
네트워크
CAA 레코드 빌더 (DNS 인증 기관 권한 제한)
CAA (Certificate Authority Authorization) DNS 레코드 생성 — 신뢰하는 CA만 도메인의 TLS 인증서를 발급할 수 있도록 제한.
네트워크
HTTP 쿠키 파서
Cookie: 요청 헤더 또는 Set-Cookie: 응답 헤더 붙여넣기 → 각 쿠키의 이름·값·속성·경고 표시.
개발
HTTP 상태 코드 레퍼런스
1xx-5xx 모든 HTTP 상태 코드 검색 — 요약·RFC·사용 시점·흔한 함정 포함.
네트워크
날짜 포맷 변환
ISO·RFC·Unix epoch·로케일 등 어떤 날짜를 입력해도 14+ 표준 형식을 동시에 표시.
시간