PHP Conference Nagoya 2025

gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_randomNombre GMP aléatoire

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0 et a été SUPPRIMÉE à partir de PHP 8.0.0.

Description

gmp_random(int $limiter = 20): GMP

Génère un nombre aléatoire. Ce nombre sera compris entre zéro et (2 ** n) -1, où n est le nombre de bits par limb multiplié par limiter. Si limiter est négatif, un nombre négatif est généré.

Un limb est un mécanisme interne de GMP. Le nombre de bits dans un limb n'est pas statique, et peut varier entre les systèmes. En général, le nombre de bits par limb est 32 ou 64, mais ce n'est pas garantit.

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Liste de paramètres

limiter

Le limiteur.

Un objet GMP, un entier, ou un chaîne de caractères qui peut être interprété comme un nombre suivant la même logique que si la chaîne était utilisée dans gmp_init() avec détection automatique de la base (c'est-à-dire lorsque base est égal à 0).

Valeurs de retour

Un nombre GMP aléatoire.

Exemples

Exemple #1 Exemple avec gmp_random()

<?php
$rand1
= gmp_random(1); // nombre aléatoire de 0 à 1 * bits par limb
$rand2 = gmp_random(2); // nombre aléatoire de 0 à 2 * bits par limb

echo gmp_strval($rand1) . "\n";
echo
gmp_strval($rand2) . "\n";
?>

L'exemple ci-dessus va afficher :

1915834968
8642564075890328087

add a note

User Contributed Notes 1 note

up
1
asphp at dsgml dot com
8 years ago
Warning: Do not use this function.

Use gmp_random_bits() or gmp_random_range() instead.

The documentation and the code for this function do NOT match, and in any case this function is quite useless.
To Top