Crypt using Argon2id by default with Argon2i and bcrypt in fallback.
composer require rancoud/crypt
use Rancoud\Crypt\Crypt;
$password = 'my_password';
$hash = Crypt::hash($password);
$result = Crypt::verify($password, $hash);
// use only Argon2i
Crypt::useArgon2i();
// use only bcrypt
Crypt::useBcrypt();
Hashs the password according to the selected algorithm.
public static function hash(string $password): string
Checks whether the hash needs to be rehash to match the selected algorithm and options.
public static function needsRehash(string $hash): bool
Checks if password and hash match.
public static function verify(string $password, string $hash): bool
Returns current algorithm.
Possible values are argon2id
, argon2i
or 2y
.
public static function getCurrentAlgo(): string
Sets the algorithm to argon2id
.
public static function useArgon2id(): void
Sets the algorithm to argon2i
.
public static function useArgon2i(): void
Sets the algorithm to 2y
(bcrypt).
public static function useBcrypt(): void
Sets memory cost for argon2id
and argon2i
.
Must be equal or greater than 8.
public static function setOptionArgon2iMemoryCost(int $bytes): void
Sets number of threads for argon2id
and argon2i
.
Must be equal or greater than 1.
public static function setOptionArgon2iThreads(int $threads): void
Sets time cost for argon2id
and argon2i
.
Must be equal or greater than 1.
public static function setOptionArgon2iTimeCost(int $time): void
Sets rounds cost for 2y
(bcrypt).
Must be between 4 and 31.
public static function setOptionBcryptCost(int $rounds): void
Returns options for argon2id
and argon2i
.
public static function getOptionsArgon2i(): array
Returns options for 2y
(bcrypt).
public static function getOptionsBcrypt(): array
Returns a fixed-size string containing random characters from the preselection.
The default character pool is !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_``abcdefghijklmnopqrstuvwxyz{|}~
.
public static function getRandomString(int $length = 64, ?string $characters = null): string
Returns the character pool.
public static function getCharactersForRandomString(): string
Sets the character pool.
public static function setCharactersForRandomString(string $characters): void
composer ci
for php-cs-fixer and phpunit and coverage
composer lint
for php-cs-fixer
composer test
for phpunit and coverage