La bibliothèque nebule en PHP orienté objet présente deux fonctions de génération d’aléa dans la classe dédiée à la cryptographie.
Les fonctions :
public function getPseudoRandom($size=32)
public function getStrongRandom($size=32)
La première fonction getPseudoRandom
permet de générer un aléa correct mais pas fiable, c’est à dire de qualité mais pas pour un usage cryptographique sûr. Il va servir principalement pour générer des identifiants d’objets de références.
La seconde fonction getStrongRandom
permet de générer un aléa beaucoup plus fiable, c’est à dire réellement non prédictible, pour un usage cryptographique sûr. Cependant cet aléa est précieux parce que sa génération prendre du temps et peut consommer des ressources, ce qui limite la quantité de bon aléa que l’on peut demander à un instant donné. Il doit donc être réservé strictement à des usages requérant un aléa fiable.
Or, la fonction getPseudoRandom
fait appel à la même fonction interne openssl_random_pseudo_bytes
que getStrongRandom
, ce qui veut dire qu’elle consomme de l’aléa précieux alors que ce n’est pas nécessaire.
Cette fonction getPseudoRandom
va être modifiée pour générer un aléa correct mais non fiable à partir de la date/heure et une préparation via une ou plusieurs fonctions de hachage. Elle ne devra en aucun cas être utilisée comme source pour générer des mots de passes de session ou de protection des objets, etc… nécessitant un aléa de qualité cryptographique.