(PHP 8 >= 8.3.0)
Random\Randomizer::getBytesFromString — Renvoie des octets aléatoires à partir d'une chaîne
Génère une chaîne contenant des octets aléatoires uniformément sélectionnés de la
string
d'entrée avec la length
demandée.
La chance pour un octet d'être sélectionné est proportionnelle à sa part
de la string
d'entrée. Si chaque octet se produit
le même nombre de fois, chaque octet a la même probabilité d'être sélectionné.
string
La chaîne de caractères d'entrée à partir de laquelle les octets retournés sont sélectionnés.
length
La longueur de la chaîne aléatoire chaîne de caractères qui doit être retournée en octets; doit être 1
ou plus.
Une chaîne de caractères contenant le nombre demandé d'octets aléatoires pris dans l'entrée string
.
string
est vide,
une ValueError sera lancée.
length
est inférieure à 1
,
une ValueError sera lancée.
Random\Randomizer::$engine
sous-jacent.
Exemple #1 Exemple de Random\Randomizer::getBytesFromString()
<?php
$randomizer = new \Random\Randomizer();
printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>
Résultat de l'exemple ci-dessus est similaire à :
3zsw04eiubcf82jd.example.com
Exemple #2 Générer un code aléatoire pour l'authentification multi-facteurs
<?php
// Le moteur Secure est le moteur par défaut, mais nous le rendons explicite, car
// les codes multi-facteurs sont sensibles à la sécurité.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());
echo implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>
Résultat de l'exemple ci-dessus est similaire à :
11551-80418-27047-42075
Exemple #3 Sélectionner à partir d'une chaîne avec une distribution non uniforme
<?php
$randomizer = new \Random\Randomizer();
echo $randomizer->getBytesFromString('aaaaabcdef', 20);
?>
Résultat de l'exemple ci-dessus est similaire à :
fddacbeaaeaaacaaaaca