Файл: gapps/vendor/cartalyst/sentinel/src/Hashing/Hasher.php
Строк: 51
<?php
/**
* Part of the Sentinel package.
*
* NOTICE OF LICENSE
*
* Licensed under the 3-clause BSD License.
*
* This source file is subject to the 3-clause BSD License that is
* bundled with this package in the LICENSE file.
*
* @package Sentinel
* @version 2.0.15
* @author Cartalyst LLC
* @license BSD License (3-clause)
* @copyright (c) 2011-2017, Cartalyst LLC
* @link http://cartalyst.com
*/
namespace CartalystSentinelHashing;
trait Hasher
{
/**
* The salt length.
*
* @var int
*/
protected $saltLength = 22;
/**
* Create a random string for a salt.
*
* @return string
*/
protected function createSalt()
{
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ./';
$max = strlen($pool) - 1;
$salt = '';
for ($i = 0; $i < $this->saltLength; ++$i) {
$salt .= $pool[random_int(0, $max)];
}
return $salt;
}
/**
* Compares two strings $a and $b in length-constant time.
*
* @param string $a
* @param string $b
* @return boolean
*/
protected function slowEquals($a, $b)
{
$diff = strlen($a) ^ strlen($b);
for ($i = 0; $i < strlen($a) && $i < strlen($b); $i++) {
$diff |= ord($a[$i]) ^ ord($b[$i]);
}
return $diff === 0;
}
}