Tạo dòng .htpasswd của Apache/nginx với hash APR1-MD5 hoặc SHA-1 có muối, hoàn toàn ngoại tuyến trong trình duyệt.
— kết quả hiển thị ở đây —
Không bao gồm Bcrypt. APR1-MD5 có muối và được khuyến nghị; SHA-1 không có muối, chỉ dùng cho hệ thống cũ.
Về công cụ này
Tạo một dòng thông tin đăng nhập .htpasswd (username:hash) sẵn để dán cho xác thực HTTP Basic của Apache hoặc nginx. Tên người dùng, mật khẩu và toàn bộ việc băm đều diễn ra cục bộ trong trình duyệt của bạn — không có gì được tải lên, và không có eval hay thư viện bên ngoài.
Hai thuật toán được hỗ trợ. APR1-MD5 (định dạng $apr1$ của Apache) được cài đặt bằng JavaScript thuần, bao gồm một MD5 tự chứa và toàn bộ vòng lặp crypt có muối 1000 vòng, với muối ngẫu nhiên 8 ký tự lấy từ crypto.getRandomValues. SHA-1 dùng crypto.subtle.digest có sẵn của trình duyệt, mã hóa base64 và thêm tiền tố {SHA}, khớp với đầu ra của htpasswd -s. Bcrypt cố tình không được đưa vào vì một bcrypt JS thuần đúng đắn và nhanh là bất khả thi để chạy phía client.
Gõ tên người dùng và mật khẩu, chọn một thuật toán, và sao chép dòng thu được vào tệp .htpasswd của bạn. Dùng Muối mới để tạo lại muối APR1 (mỗi lần lưu tạo ra một hash khác nhau cho cùng một mật khẩu, điều này là dự kiến và đúng đắn).
Câu hỏi thường gặp
Mật khẩu của tôi có được gửi đi đâu không?
Không. Toàn bộ việc băm chạy hoàn toàn trong trình duyệt của bạn dùng một MD5 tích hợp cho APR1 và crypto.subtle gốc cho SHA-1. Không có gì được truyền đi và không có eval.
Tôi nên chọn thuật toán nào?
APR1-MD5 ($apr1$) là mặc định Apache được khuyến nghị và có muối, nên là lựa chọn an toàn hơn trong hai cái ở đây. SHA-1 ({SHA}) không có muối và chủ yếu hữu ích cho các thiết lập cũ hoặc tương thích nginx.
Tại sao hash APR1 thay đổi mỗi lần?
APR1 dùng một muối ngẫu nhiên 8 ký tự, nên cùng một mật khẩu tạo ra một hash khác nhau mỗi lần. Đây là chủ ý thiết kế; Apache đọc lại muối từ hash đã lưu khi kiểm tra đăng nhập.
Tại sao không có bcrypt?
Bcrypt cố tình bị loại bỏ. Một bcrypt JavaScript thuần đúng đắn sẽ lớn và chậm trong trình duyệt, nên công cụ này cung cấp các chế độ APR1-MD5 và SHA-1 đáng tin cậy, ngoại tuyến thay thế.