Midwest PHP Call For Papers Open

OAuthProvider::generateToken

(PECL OAuth >= 1.0.0)

OAuthProvider::generateTokenГенерация случайного токена

Описание

final public static OAuthProvider::generateToken ( int $size [, bool $strong = FALSE ] ) : string

Генерирует строку псевдо-случайных байт.

Список параметров

size

Длина токена в байтах.

strong

Установка в TRUE приведет к использованию /dev/random, в противном случае будет использован неблокирующий /dev/urandom. В Windows данный параметр будет проигнорирован.

Возвращаемые значения

Сгенерированный токен в виде строки байт.

Ошибки

Если параметр strong задан как TRUE, то будет выдана ошибка уровня E_WARNING, в случае, если для заполнения оставшихся случайных байт (например, если было найдено недостаточно случайных данных) будет использована старая реализация rand()

Примеры

Пример #1 Пример использования OAuthProvider::generateToken()

<?php
$p 
= new OAuthProvider();

$t $p->generateToken(4);

echo 
strlen($t),  PHP_EOL;
echo 
bin2hex($t), PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

4
b6a82c27

Примечания

Замечание:

Если в системе недостаточно случайных данных, то для генерации недостающих байт эта функция будет использовать обычную функцию rand().

Смотрите также

  • openssl_random_pseudo_bytes() - Генерирует псевдослучайную последовательность байт
  • mcrypt_create_iv() - Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника
add a note add a note

User Contributed Notes 1 note

up
1
carlosouza at me dot com
7 years ago
Be careful when setting the 'strong' parameter to true.

If you system doesn't have enough entropy your script will block which can cause timeouts in other parts of your code.

In my case, the most serious symptom was my script blocking when trying to read from /dev/random and causing a 'MySQL has gone away' error.

Hopefully this saves someone the trouble when deciding to use /dev/random entropy
To Top