htpasswd 생성기

사용자 이름과 비밀번호로 Apache·nginx의 .htpasswd 줄과 HTTP Basic 인증 헤더를 bcrypt·APR1·SHA-1 해시로 모두 브라우저에서 만들어 줍니다.

도구를 불러오는 중…

htpasswd 생성기사용자 이름과 비밀번호를 입력하면 두 가지를 한 번에 얻습니다. Apache나 nginx 기본 인증에 바로 붙여 넣을 수 있는 .htpasswd 줄과, 클라이언트가 보내는 그에 대응하는 HTTP Basic 인증 헤더입니다. 헤더는 user:pass의 base64라 즉시 갱신되고, 해시된 .htpasswd 줄은 「생성」을 누를 때 계산됩니다. 모든 계산은 Web Crypto API와 브라우저 안의 WebAssembly 해셔로 로컬에서 이뤄지므로 비밀번호는 어떤 서버에도 업로드되지 않습니다.

htpasswd 생성기란?

htpasswd 생성기는 HTTP 기본 인증에 쓰는 자격 증명을 만드는 무료 브라우저 내 도구입니다. 시스템 관리자와 웹 개발자는 Apache의 htpasswd 명령줄 도구를 설치하지 않고도 사용자 이름과 비밀번호로 디렉터리나 관리자 페이지를 보호하는 데 사용합니다. .htpasswd 파일에 덧붙일 user:hash 한 줄을 만들며, bcrypt(가장 강하고 $2y$ 형식), APR1(Apache의 이식 가능한 MD5, $apr1$ 형식), SHA-1(SHA 형식) 중에서 고를 수 있습니다. 또한 그에 대응하는 Authorization: Basic 헤더도 도출해 curl이나 REST 클라이언트로 같은 자격 증명을 테스트할 수 있습니다. bcrypt 비용 계수는 설정에서 조정해 더 강하거나 더 빠르게 해시할 수 있습니다.

htpasswd 생성기 사용법

  1. 로그인할 사용자 이름을 입력하세요.
  2. 계정을 보호할 비밀번호를 입력하세요. 이 필드에 머물며 어디에도 전송되지 않습니다.
  3. API 요청이나 curl 테스트에만 필요하다면 Basic 인증 헤더를 곧바로 복사하세요.
  4. 설정을 열어 해시 알고리즘(bcrypt·APR1·SHA-1)을 고르고, bcrypt라면 비용 계수를 지정하세요.
  5. 「생성」을 눌러 해시된 .htpasswd 줄을 계산한 뒤, 서버의 .htpasswd 파일에 복사하세요.

예시

단일 사용자용 bcrypt 줄

입력

사용자: admin, 비밀번호: s3cret, 알고리즘: bcrypt(비용 10)

출력

admin:$2y$10$... (60자 bcrypt 해시, 매번 무작위 솔트)

API 테스트용 HTTP Basic 헤더

입력

사용자: admin, 비밀번호: s3cret

출력

Basic YWRtaW46czNjcmV0

구형 설정용 APR1(Apache MD5) 줄

입력

사용자: web, 비밀번호: pass123, 알고리즘: APR1

출력

web:$apr1$<솔트>$<22자 해시>

자주 묻는 질문

제 비밀번호가 서버로 전송되나요?
아니요. Basic 헤더와 .htpasswd 해시 모두 Web Crypto API와 브라우저 안의 WebAssembly 해셔로 전적으로 브라우저에서 계산됩니다. 어떤 것도 서버로 업로드되거나 저장되지 않으므로 도구는 오프라인에서 작동하고 비밀번호는 페이지를 떠나지 않습니다.
어떤 해시를 골라야 하나요?
새 설정에는 bcrypt를 쓰세요. 해독에 가장 강하고 최신 Apache와 nginx가 지원합니다. APR1($apr1$)은 Apache의 이식 가능한 MD5로 구형 설정에 유용합니다. SHA-1({SHA})은 가장 약하므로 시스템이 명시적으로 요구하지 않는 한 피하는 것이 좋습니다.
「생성」 버튼이 잠깐 걸리는 이유는 무엇인가요?
bcrypt와 APR1은 무차별 대입 공격에 강하도록 일부러 느리게 설계되어 있고, bcrypt는 처음 사용할 때 작은 WebAssembly 모듈도 불러옵니다. 비용 계수를 높이면 bcrypt가 더 느리지만 더 강해집니다. SHA-1과 Basic 헤더는 즉시 계산됩니다.
실제 htpasswd 명령과 일치하나요?
네. bcrypt 줄은 Apache가 기대하는 $2y$ 접두사를 쓰고, APR1은 무작위 솔트가 붙은 표준 $apr1$ 형식, SHA-1은 {SHA} 방식을 써서 모두 htpasswd가 만든 파일과 호환됩니다.
nginx에도 쓸 수 있나요?
네. nginx의 auth_basic_user_file은 같은 .htpasswd 형식을 읽으므로 bcrypt나 APR1 줄을 바로 쓸 수 있습니다. nginx는 {SHA}를 지원하지 않으니 bcrypt나 APR1을 고르세요.

관련 도구