Trình tạo htpasswd

Tạo một dòng .htpasswd cho Apache hoặc nginx và một tiêu đề Authorization HTTP Basic từ tên người dùng và mật khẩu, với băm bcrypt, APR1 hoặc SHA-1, hoàn toàn trong trình duyệt của bạn.

Đang tải công cụ…

Trình tạo htpasswdNhập tên người dùng và mật khẩu để nhận cùng lúc hai thứ: một dòng .htpasswd sẵn sàng dán cho basic-auth của Apache hoặc nginx, và tiêu đề Authorization HTTP Basic tương ứng mà ứng dụng khách của bạn sẽ gửi. Tiêu đề là base64 của user:pass và cập nhật tức thì, trong khi dòng .htpasswd đã băm được tính khi bạn nhấn Tạo. Mọi thứ chạy cục bộ bằng Web Crypto API và một bộ băm WebAssembly trong trình duyệt, nên mật khẩu của bạn không bao giờ được tải lên bất kỳ máy chủ nào.

Trình tạo htpasswd là gì?

Trình tạo htpasswd là một công cụ miễn phí chạy trong trình duyệt để tạo thông tin xác thực dùng cho Xác thực HTTP Basic. Quản trị viên hệ thống và nhà phát triển web dùng nó để bảo vệ một thư mục hoặc bảng quản trị bằng tên người dùng và mật khẩu mà không cần cài đặt tiện ích dòng lệnh htpasswd của Apache. Nó tạo ra một dòng user:hash duy nhất để bạn thêm vào tệp .htpasswd, với lựa chọn bcrypt (mạnh nhất, định dạng $2y$), APR1 (MD5 di động của Apache, định dạng $apr1$) hoặc SHA-1 (định dạng SHA). Nó cũng suy ra tiêu đề Authorization: Basic tương ứng để bạn có thể kiểm thử cùng thông tin xác thực bằng curl hoặc một ứng dụng khách REST. Hệ số chi phí bcrypt có thể được cấu hình trong Cài đặt để băm mạnh hơn hoặc nhanh hơn.

Cách sử dụng Trình tạo htpasswd

  1. Nhập tên người dùng sẽ đăng nhập.
  2. Nhập mật khẩu sẽ bảo vệ tài khoản; nó ở lại trong trường này và không bao giờ được gửi đi đâu.
  3. Sao chép ngay tiêu đề Authorization Basic nếu bạn chỉ cần nó cho một yêu cầu API hoặc một bài kiểm thử curl.
  4. Mở Cài đặt để chọn thuật toán băm (bcrypt, APR1 hoặc SHA-1) và, với bcrypt, hệ số chi phí.
  5. Nhấn Tạo để tính dòng .htpasswd đã băm, rồi sao chép nó vào tệp .htpasswd của máy chủ.

Ví dụ

Dòng bcrypt cho một người dùng

Đầu vào

người dùng: admin, mật khẩu: s3cret, thuật toán: bcrypt (chi phí 10)

Đầu ra

admin:$2y$10$... (một hash bcrypt 60 ký tự, salt ngẫu nhiên mỗi lần)

Tiêu đề HTTP Basic cho một bài kiểm thử API

Đầu vào

người dùng: admin, mật khẩu: s3cret

Đầu ra

Basic YWRtaW46czNjcmV0

Dòng APR1 (Apache MD5) cho các cấu hình cũ

Đầu vào

người dùng: web, mật khẩu: pass123, thuật toán: APR1

Đầu ra

web:$apr1$<salt>$<hash 22 ký tự>

Câu hỏi thường gặp

Mật khẩu của tôi có được gửi đến máy chủ không?
Không. Cả tiêu đề Basic lẫn hash .htpasswd đều được tính hoàn toàn trong trình duyệt của bạn bằng Web Crypto API và một bộ băm WebAssembly trong trình duyệt. Không có gì được tải lên hay lưu trên bất kỳ máy chủ nào, nên công cụ hoạt động ngoại tuyến và mật khẩu của bạn không bao giờ rời khỏi trang.
Tôi nên chọn loại băm nào?
Dùng bcrypt cho các thiết lập mới; nó chống bẻ khóa tốt nhất và được Apache cùng nginx hiện đại hỗ trợ. APR1 ($apr1$) là MD5 di động của Apache, hữu ích cho các cấu hình cũ. SHA-1 ({SHA}) yếu nhất và tốt nhất nên tránh trừ khi một hệ thống yêu cầu cụ thể.
Vì sao nút Tạo mất một chút thời gian?
bcrypt và APR1 cố ý chậm để chống lại tấn công vét cạn, và bcrypt còn tải một mô-đun WebAssembly nhỏ trong lần dùng đầu tiên. Hệ số chi phí cao hơn khiến bcrypt chậm hơn nhưng mạnh hơn. SHA-1 và tiêu đề Basic là tức thì.
Nó có khớp với lệnh htpasswd thật không?
Có. Các dòng bcrypt dùng tiền tố $2y$ mà Apache mong đợi, APR1 dùng định dạng chuẩn $apr1$ với salt ngẫu nhiên, và SHA-1 dùng lược đồ {SHA}, tất cả đều tương thích với các tệp do htpasswd tạo ra.
Tôi có thể dùng cái này cho nginx không?
Có. auth_basic_user_file của nginx đọc cùng định dạng .htpasswd, nên một dòng bcrypt hoặc APR1 hoạt động trực tiếp. nginx không hỗ trợ {SHA}, vì vậy hãy chọn bcrypt hoặc APR1 cho nó.

Công cụ liên quan