A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							43 lines
						
					
					
						
							1.1 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * @param int $length 
 | 
						|
 * @return string|false 
 | 
						|
 * @throws Exception 
 | 
						|
 */
 | 
						|
function token($length = 32) {
 | 
						|
    if(!isset($length) || intval($length) <= 8 ){
 | 
						|
        $length = 32;
 | 
						|
    }
 | 
						|
 | 
						|
    if (function_exists('openssl_random_pseudo_bytes')) {
 | 
						|
        $token = bin2hex(openssl_random_pseudo_bytes($length));
 | 
						|
    } elseif (function_exists('random_bytes')) {
 | 
						|
        $token = bin2hex(random_bytes($length));
 | 
						|
    } elseif (function_exists('mcrypt_create_iv') && phpversion() < '7.1') {
 | 
						|
        $token = bin2hex(mcrypt_create_iv($length, MCRYPT_DEV_URANDOM));
 | 
						|
    } else {
 | 
						|
        $token = md5(rand(0, 4000).time());
 | 
						|
    }
 | 
						|
 | 
						|
    return substr($token, -$length, $length);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
if (!function_exists('hash_equals')) {
 | 
						|
    function hash_equals($known_string, $user_string) {
 | 
						|
        $known_string = (string)$known_string;
 | 
						|
        $user_string = (string)$user_string;
 | 
						|
 | 
						|
        if (strlen($known_string) != strlen($user_string)) {
 | 
						|
            return false;
 | 
						|
        } else {
 | 
						|
            $res = $known_string ^ $user_string;
 | 
						|
            $ret = 0;
 | 
						|
 | 
						|
            for ($i = strlen($res) - 1; $i >= 0; $i--) $ret |= ord($res[$i]);
 | 
						|
 | 
						|
            return !$ret;
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |