사용법
- 사용자명과 비밀번호를 입력하세요.
- '생성' 버튼을 누르세요.
- 결과를 .htpasswd 파일에 그대로 붙여넣으세요.
🎯 이럴 때 씁니다
- Apache Basic 인증 설정 — .htaccess로 보호할 디렉토리의 계정 생성
- 사내 테스트 서버 접근 제한 — 간단한 아이디·비밀번호 인증 추가
- Nginx auth_basic_user_file 생성 — 동일한 해시 형식을 지원하는 Nginx에도 사용 가능
입력 · 출력 예시
입력
사용자명: admin 비밀번호: s3cret42 (salt: Xy7bQ2mZ)
출력
admin:$apr1$Xy7bQ2mZ$Po1ThYwGdFdSdS54NPlWa/
비밀번호 s3cret42를 salt Xy7bQ2mZ로 APR1-MD5 해시한 결과이며, openssl passwd -apr1 출력과 정확히 일치합니다. 실제 도구는 매번 무작위 salt를 사용하므로 해시값은 달라집니다.
.htpasswd 파일 구조
Apache의 Basic 인증 계정 정보를 담는 파일입니다. 생성된 해시를 한 줄에 한 계정씩 기록합니다.
| 요소 | 설명 |
|---|---|
| 해시 형식 | APR1-MD5 — $apr1$로 시작하는 Apache 전용 포맷 |
| 파일 형식 | 사용자명:해시를 한 줄에 하나씩 |
| 적용 방법 | .htaccess에 AuthType Basic + AuthUserFile 경로 지정 |
| 대안 | htpasswd -B로 생성하는 bcrypt 해시 — 최신 Apache에서 지원 |
자주 묻는 질문
- 이 도구는 어떤 형식을 생성하나요?
- Apache의
htpasswd -m옵션과 동일한 APR1-MD5 형식($apr1$...)을 생성합니다. 최신 Apache는 bcrypt(-B)도 지원하나, 이 도구는 APR1-MD5만 지원합니다. - 비밀번호가 서버로 전송되나요?
- 전송되지 않습니다. 브라우저 안에서 자체 구현한 MD5로 계산되며, 실제 openssl 출력과 대조 검증된 구현입니다.
- 생성될 때마다 결과가 달라지는 이유는 무엇인가요?
- 매번 무작위 salt(8자)를 새로 생성하기 때문입니다. 같은 비밀번호라도 salt가 다르면 해시값이 달라지며, 이는 정상적인 동작입니다.
- MD5라서 취약하지 않나요?
- APR1은 단순 MD5가 아니라 솔트와 반복 라운드가 적용된 Apache 전용 포맷입니다. 다만 더 안전한 bcrypt(-B 옵션) 사용을 권장합니다.
- .htpasswd는 어디에 두나요?
- 웹 루트 바깥(예: /etc/apache2/ 또는 홈 디렉터리)에 두세요. 웹으로 접근 가능한 위치는 위험합니다.
🗝️ 더 알아보기: Apache Basic 인증(.htpasswd) 파일 만드는 법
APR1-MD5 해시로 .htpasswd 생성하는 법
다른 보안 도구
🔑
비밀번호 생성기
안전한 무작위 비밀번호 생성
#️⃣
해시값 생성
MD5·SHA1·SHA256 해시 생성
📱
QR 코드 생성
텍스트·URL을 QR 코드로 생성
🔍
SSL 인증서 내용 확인
인증서 발급자·유효기간·SAN 확인
📜
CSR 내용 확인
CSR 주체·공개키 정보 확인
♻️
SSL 인증서 변환
PEM ↔ DER(HEX) 형식 변환
🤝
SSL 인증서·개인키 쌍 검사기
인증서·개인키 짝 확인
🩺
SSL 체커
HTTPS 접속·인증서 신뢰 여부 확인
🪄
SSL 인증서 생성
자체서명 SSL 인증서·키 생성
🔐
Base64 인코딩·디코딩
텍스트 ↔ Base64 변환
🔑
HTTP Authentication 헤더 생성
Basic·Bearer Authorization 헤더 생성
🪪
JWT 디코더
JWT 헤더·페이로드 확인, HS256 서명 검증
🎫
랜덤 토큰/시크릿 생성기
Hex·Base64·UUID 토큰 생성
🔒
Jasypt 암호화·복호화
Spring Boot ENC(...) 값 암복호화