45 lines
884 B
PHP
45 lines
884 B
PHP
<?php namespace System;
|
|
|
|
class Hash {
|
|
|
|
/**
|
|
* Hash a string using PHPass.
|
|
*
|
|
* PHPass provides reliable bcrypt hashing, and is used by many popular PHP
|
|
* applications such as Wordpress and Joomla.
|
|
*
|
|
* @access public
|
|
* @param string $value
|
|
* @return string
|
|
*/
|
|
public static function make($value, $rounds = 10)
|
|
{
|
|
return static::hasher($rounds)->HashPassword($value);
|
|
}
|
|
|
|
/**
|
|
* Determine if an unhashed value matches a given hash.
|
|
*
|
|
* @param string $value
|
|
* @param string $hash
|
|
* @return bool
|
|
*/
|
|
public static function check($value, $hash)
|
|
{
|
|
return static::hasher()->CheckPassword($value, $hash);
|
|
}
|
|
|
|
/**
|
|
* Create a new PHPass instance.
|
|
*
|
|
* @param int $rounds
|
|
* @return PasswordHash
|
|
*/
|
|
private static function hasher($rounds = 10)
|
|
{
|
|
require_once SYS_PATH.'vendor/phpass'.EXT;
|
|
|
|
return new \PasswordHash($rounds, false);
|
|
}
|
|
|
|
} |