Does Nginx accept bcrypt hashes in .htpasswd?
No. Nginx's `ngx_http_auth_basic` module uses the system `crypt()` function, which does not know how to read the bcrypt `$2y$` prefix; pointing Nginx at a bcrypt-hashed file breaks authentication for every account. Generate apr1 hashes for Nginx servers.
Is HTTP Basic Auth safe without HTTPS?
No. The `Authorization: Basic` header only base64-encodes the username and password, a reversible transform with no key involved; anyone intercepting the request decodes the password in one line. RFC 7617 assumes TLS underneath for the scheme to have any practical value.
How many hashing rounds does apr1 run?
A thousand rounds of chained MD5 over the password, the salt, and the password again, a fixed stretch built into Apache itself; it is slower than a plain MD5 pass, but still far faster to brute-force than bcrypt at cost factor 10 or higher.
Why do two accounts with the same password get different hashes under apr1 and bcrypt, but identical ones under SHA?
Because apr1 and bcrypt generate a fresh random salt on every run and mix it into the computation, so the same text produces a different output each time; this generator's `{SHA}` scheme uses no salt at all, so the same password always turns into the same hash, which allows direct comparison across accounts and a precomputed-table attack.