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.
38 lines
1.1 KiB
38 lines
1.1 KiB
<?php
|
|
|
|
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;
|
|
}
|
|
}
|
|
} |