Source of file Hash.php
Size: 2,270 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Crypt/Hash.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Crypt; class Hash { const OUTPUT_STRING = false; const OUTPUT_BINARY = true; /** * Last algorithm supported * * @var string|null */ protected static $lastAlgorithmSupported; /** * @param string $hash * @param string $data * @param bool $output * @throws Exception\InvalidArgumentException * @return string */ public static function compute($hash, $data, $output = self::OUTPUT_STRING) { if (!$hash || ($hash !== static::$lastAlgorithmSupported && !static::isSupported($hash))) { throw new Exception\InvalidArgumentException( 'Hash algorithm provided is not supported on this PHP installation' ); } return hash($hash, $data, $output); } /** * Get the output size according to the hash algorithm and the output format * * @param string $hash * @param bool $output * @return int */ public static function getOutputSize($hash, $output = self::OUTPUT_STRING) { return strlen(static::compute($hash, 'data', $output)); } /** * Get the supported algorithm * * @return array */ public static function getSupportedAlgorithms() { return hash_algos(); } /** * Is the hash algorithm supported? * * @param string $algorithm * @return bool */ public static function isSupported($algorithm) { if ($algorithm === static::$lastAlgorithmSupported) { return true; } if (in_array(strtolower($algorithm), hash_algos(), true)) { static::$lastAlgorithmSupported = $algorithm; return true; } return false; } /** * Clear the cache of last algorithm supported */ public static function clearLastAlgorithmCache() { static::$lastAlgorithmSupported = null; } } |