<?php
/**
* token
* @return bool|string
*/
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') && version_compare(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);
}
/**
* 向后支持定时安全散列字符串比较
*
* 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;
}
}
}
【opencart3源码分析】助手文件general.php
猜你喜欢
转载自blog.csdn.net/qq2942713658/article/details/81544836
今日推荐
周排行