2017 © Pedro Peláez
 

library htpasswd

Working with htpasswd file

image

axy/htpasswd

Working with htpasswd file

  • Friday, January 12, 2018
  • by axy
  • Repository
  • 1 Watchers
  • 0 Stars
  • 410 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 1 % Grown

The README.md

axy\htpasswd

Working with htpasswd file (PHP)., (*1)

Latest Stable Version Minimum PHP Version Tests Coverage Status License, (*2)

Documentation

The library provides program API for manipulation with htpasswd file (for console utility see axypro/htpasswd-cli)., (*3)

use axy\htpasswd\PasswordFile;

$file = new PasswordFile('/path/to/.htpasswd');
$file->setPassword('nick', 'password');
$file->setPassword('john', '123456');
$file->save();

Currently supported the following algorithms (constants of PasswordFile::*):, (*4)

  • ALG_MD5: Apache APR1-MD5 algorithm (by default)
  • ALG_BCrypt: Blowfish
  • ALG_SHA1: SHA-1
  • ALG_CRYPT: crypt (unix)
  • ALG_PLAIN: Plain text (not supported of servers on some platforms).
__construct([string $filename])

The constructor takes the name of a htpasswd file., (*5)

Or NULL: analogue of the option -n of the console utility:, (*6)

$file = new PasswordFile();
$file->setPassword('nick', 'password');
$file->getContent(); // out of the "file" content

$file->save(); // Exception FileNotSpecified
setPassword(string $user, string $password [, string $algorithm, [array $options]): bool

Sets the password $password for a user $user. For hashing uses $algorithm (by default Apache MD5)., (*7)

$options is an array of options for hashing. Only cost for BCrypt supported (integer in the range 4 to 31), (*8)

Returns TRUE if a new user has been created. And FALSE if has been changed the password of an existing user., (*9)

remove(string $user): bool

Removes a user from the file. Returns TRUE is the user has been removed. And FALSE if the user was not found., (*10)

verify(string $user, string $password): bool

Returns TRUE if a $user exists and has $password as the password., (*11)

isUserExist(string $user): bool

Returns TRUE is a user exists in the file., (*12)

if (!$file->isUserExist('john')) {
    echo 'John? I do not known you.';
    exit();
}
if (!$file->verify('john', 'password')) {
    echo 'You are not John! You are an impostor!';
    exit();
}
echo 'Hello, John';
getContent(void): string

Returns the file content (without saving)., (*13)

save(void): void

Saves the content to the file (if it is specified)., (*14)

In contrast, from the utility htpasswd (see the option -c) the existing file always changing (not overwritten). Nonexistent file is created., (*15)

setFileName(string $filename): void

Sets a new filename. The content of the old file will be loaded and saved to the new (after save())., (*16)

getFileName(void): string

Returns the current specified file name., (*17)

Exceptions

In the axy\htpasswd\errors namespace., (*18)

  • InvalidFileFormat: a password file has invalid format.
  • FileNotSpecified: throws from save() if the file is not specified in the constructor.

The Versions

12/01 2018

dev-master

9999999-dev https://github.com/axypro/htpasswd

Working with htpasswd file

  Sources   Download

MIT

The Requires

 

08/12 2015

1.0.1

1.0.1.0 https://github.com/axypro/htpasswd

Working with htpasswd file

  Sources   Download

MIT

The Requires

 

05/12 2015

1.0.0

1.0.0.0 https://github.com/axypro/htpasswd

Working with htpasswd file

  Sources   Download

MIT

The Requires

 

03/12 2015

0.1.2

0.1.2.0 https://github.com/axypro/htpasswd

Working with htpasswd file

  Sources   Download

MIT

The Requires

 

02/12 2015

0.1.1

0.1.1.0 https://github.com/axypro/htpasswd

Working with htpasswd file

  Sources   Download

MIT

The Requires

 

29/11 2015

0.1.0

0.1.0.0 https://github.com/axypro/htpasswd

Working with htpasswd file

  Sources   Download

MIT

The Requires