PHP Htpasswd writer for Apache. You can add or delete users, or update their passwords.
- Supports
crypt
,md5
andsha1
algorithms - Locks the htpasswd file to prevent conflicts while writing.
- Throws an error on invalid usernames.
- Unit tested.
- Whole htpasswd file is read into the memory so be careful if you have lots of users (In fact you should consider a different kind of authentication mechanism if you have that many users)
Install: composer require ozanhazer/php-htpasswd
$htpasswd = new Htpasswd('.htpasswd');
$htpasswd->addUser('ozan', '123456');
$htpasswd->updateUser('ozan', '654321');
$htpasswd->deleteUser('ozan');
Apache htpasswd can be encrypted in three ways: crypt (unix only), a modified version of md5 and sha1. You can define the encryption method when you're setting the password:
$htpasswd->addUser('ozan', '123456', Htpasswd::ENCTYPE_APR_MD5);
$htpasswd->addUser('ozan', '123456', Htpasswd::ENCTYPE_SHA1);
(Yes, you may use different algorithms per user in the same passwd file...)
See the Apache documentation for encryption details.
- Do not prefer
ENCTYPE_CRYPT
on Windows servers since it's not available on Windows by default. ENCTYPE_CRYPT
passwords are limited to 8 characters and extra characters will be ignored so the library will trigger a notice if long passwords are provided.