1
0
Fork 0
mirror of synced 2024-06-03 19:34:54 +12:00
appwrite/src/Appwrite/Auth/Hash/Bcrypt.php
2022-05-15 06:53:26 +00:00

43 lines
1,020 B
PHP

<?php
namespace Appwrite\Auth\Hash;
use Appwrite\Auth\Hash;
/*
* BCrypt accepted options:
* int cost
* string? salt; auto-generated if empty
*
* Refference: https://www.php.net/manual/en/password.constants.php
*/
class Bcrypt extends Hash
{
/**
* @param string $password Input password to hash
*
* @return string hash
*/
public function hash(string $password): string {
return \password_hash($password, PASSWORD_BCRYPT, $this->getOptions());
}
/**
* @param string $password Input password to validate
* @param string $hash Hash to verify password against
*
* @return boolean true if password matches hash
*/
public function verify(string $password, string $hash): bool {
return \password_verify($password, $hash);
}
/**
* Get default options for specific hashing algo
*
* @return mixed options named array
*/
public function getDefaultOptions(): mixed {
return [ 'cost' => 8 ];
}
}