logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: Incomprehention sur fonction srand PHP  (Lu 8200 fois)
ITPPA

Profil challenge

Classement : 287/54254

Néophyte
*
Hors ligne Hors ligne
Messages: 24


Voir le profil
« le: 24 Mars 2017 à 13:50:52 »

Messieurs bonjour

Je me retrouve confronte a une fonction de hachage avec un srand
Rien de bien compliqué jusque la, sauf que je me suis littéralement pris la tête pendant plusieurs heures a cause d'une chose dont je n'est pas la réponse.
Peut etre qu'une ame (un cerveau) charitable pourrais m' eclairsir

Prenons le code php suivant:

Code:
<?php
srand
(3284724); 
echo(
rand(0255)); echo "\n";
echo(
rand(0255)); echo "\n";
echo(
rand(0255)); echo "\n";
echo(
rand(0255)); echo "\n";
echo(
rand(0255)); echo "\n";
?>


l'initialisation par srand devrait me retourner certes des valeurs différentes sur chaque lignes (comme le stipule la doc srand), mais devrait retourner toujours les même valeurs a chaque exécution du script.
Jusque la tout va bien,

Incompréhension étant au niveau du moteur php.

En phpcli (PHP 7.1.3 (cli) (built: Mar 17 2017 16:59:59) ( NTS ), le code ci dessus me retourne:
154 251 74 124 83

Et par un explorateur sur server (Apache httpd 2.4.10 - PHP 5.6.30-0+deb8u1), le même code me retourne:
107 183 99 223 226

En écrivant ce post, je vois la coquille.... la version php n'est pas la meme  . et effectivement, en phpcli sur le serveur avec php 5.6 le retour est le même:
107 183 99 223 226

Cela voudrait il dire que la fonction srand a été modifiée entre php 5.6 et php 7!!!!

Moralité, toujours debugger / comprendre / reverser un code AVEC LE MÊME ENVIRONNEMENT!

Mais bon, quelqu'un aurait une explication?, un lien... avons nous nous un développeur php dans le coin qui pourrait expliquer la chose?! 

ITPPA
Journalisée

Linux is simple, It just takes a genius to understand its simplicity
lovenunu
Beta testeur

Profil challenge

Classement : 21/54254

Membre Complet
*
Hors ligne Hors ligne
Messages: 171


Voir le profil
« #1 le: 24 Mars 2017 à 14:29:24 »

Messieurs bonjour

Il n'y a pas que des hommes sur ce site  

Sinon oui il y a bien eu un changement dans la 7.1: https://wiki.php.net/rfc/rng_fixes
La fonction `rand()` est maintenant enfin un alias de mt_rand.
« Dernière édition: 24 Mars 2017 à 14:46:47 par lovenunu » Journalisée

Tant pis je remplacerai ma nuit par une sieste.
ITPPA

Profil challenge

Classement : 287/54254

Néophyte
*
Hors ligne Hors ligne
Messages: 24


Voir le profil
« #2 le: 27 Mars 2017 à 10:32:09 »

Ceci expliquerai cela.

Merci a ces messieurs dames. 
Journalisée

Linux is simple, It just takes a genius to understand its simplicity
Pages: [1]
  Imprimer  
 
Aller à: