File: /www/wwwroot//shop.glgz.tw/system/helper/general.php
<?php
function token($length = 32) {
if(!isset($length) || intval($length) <= 8 ){
$length = 32;
}
if (function_exists('random_bytes')) {
$token = bin2hex(random_bytes($length));
}
if (function_exists('mcrypt_create_iv') && phpversion() < '7.1') {
$token = bin2hex(mcrypt_create_iv($length, MCRYPT_DEV_URANDOM));
}
if (function_exists('openssl_random_pseudo_bytes')) {
$token = bin2hex(openssl_random_pseudo_bytes($length));
}
return substr($token, -$length, $length);
}
/**
* Backwards support for timing safe hash string comparisons
*
* http://php.net/manual/en/function.hash-equals.php
*/
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;
}
}
}