Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
vibes
/
includes
/
system
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Hash handling * * Handles all hash operations and detection. * * @package System * @author Pierre Lannoy <https://pierre.lannoy.fr/>. * @since 1.0.0 */ namespace Vibes\System; /** * Define the hash functionality. * * Handles all hash operations and detection. * * @package System * @author Pierre Lannoy <https://pierre.lannoy.fr/>. * @since 1.0.0 */ class Hash { /** * Algo availability. * * @since 1.0.0 * @var array $x_available Is MD5 available? */ private static $x_available = []; /** * SHA1 availability. * * @since 1.0.0 * @var boolean $sha1_available Is SHA1 available? */ private static $sha1_available = false; /** * SHA-256 availability. * * @since 1.0.0 * @var boolean $sha256_available Is SHA-256 available? */ private static $sha256_available = false; /** * Initializes the class and set its properties. * * @since 1.0.0 */ public function __construct() { } /** * Static initialization. * * @since 1.0.0 */ public static function init() { self::$x_available = hash_algos(); self::$sha1_available = in_array( 'sha1', self::$x_available ); self::$sha256_available = in_array( 'sha256', self::$x_available ); } /** * Simple hashing function. * * @param string $secret String to hash. * @param boolean $markup Optional. With {}. * @return string The hashed string. * @since 1.0.0 */ public static function simple_hash( $secret, $markup = true ) { if ( self::$sha256_available ) { $result = hash( 'sha256', (string) $secret ); } elseif ( self::$sha1_available ) { $result = hash( 'sha1', (string) $secret ); } else { $result = hash( 'md5', (string) $secret ); } if ( $markup ) { $result = '{' . $result . '}'; } return $result; } } Hash::init();