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 entropyOAuthProvider::generateToken
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
OAuthProvider::generateToken
Референца за `oauthprovider.generatetoken.php` со подобрена типографија и навигација.
OAuthProvider::generateToken
(PECL OAuth >= 1.0.0)
OAuthProvider::generateToken — Генерирај случаен токен
= NULL
Генерира string од псевдо-случајни бајти.
Параметри
size- Саканата должина на токенот, во однос на бајти.
strong-
Поставување на
truemeans/dev/randomќе се користи за ентропија, бидејќи инаку неблокирачкиот/dev/urandomсе користи. Овој параметар се игнорира на Windows.
Вратени вредности
Генерираниот токен, како string Враќа генериран
Errors/Exceptions
Ако strong параметарот е trueсе фрла исклучок.
E_WARNING ќе се емитува грешка на ниво кога резервното решение rand() имплементацијата се користи за пополнување на преостанатите случајни бајти (на пр., кога првично не биле пронајдени доволно случајни податоци).
Примери
Пример #1 (PECL OAuth >= 1.0.0) example
<?php
$p = new OAuthProvider();
$t = $p->generateToken(4);
echo strlen($t), PHP_EOL;
echo bin2hex($t), PHP_EOL;
?>Горниот пример ќе прикаже нешто слично на:
4 b6a82c27
Белешки
Забелешка: Кога нема доволно случајни податоци достапни за системот, оваа функција ќе ги пополни преостанатите случајни бајти користејќи го внатрешниот PHP rand() implementation.
Види Исто така
- openssl_random_pseudo_bytes() - Генерира псевдо-случајна низа од бајти
- mcrypt_create_iv() - Создава вектор за иницијализација (IV) од случаен извор