{"id":2907,"date":"2017-06-03T08:50:29","date_gmt":"2017-06-03T06:50:29","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=2907"},"modified":"2017-06-03T08:52:37","modified_gmt":"2017-06-03T06:52:37","slug":"modification-des-sources-dalea","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=2907","title":{"rendered":"Modification des sources d&rsquo;al\u00e9a"},"content":{"rendered":"<p style=\"text-align: justify;\">La <a title=\"librairie\" href=\"http:\/\/blog.nebule.org\/?page_id=2478\" target=\"_blank\">biblioth\u00e8que<\/a> <a title=\"nebule\" href=\"http:\/\/www.nebule.org\" target=\"_blank\">nebule<\/a> en PHP orient\u00e9 objet pr\u00e9sente deux fonctions de g\u00e9n\u00e9ration d&rsquo;al\u00e9a dans la classe d\u00e9di\u00e9e \u00e0 la cryptographie.<\/p>\n<p style=\"text-align: justify;\">Les fonctions :<\/p>\n<ul>\n<li><code>public function getPseudoRandom($size=32)<\/code><\/li>\n<li><code>public function getStrongRandom($size=32)<\/code><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">La premi\u00e8re fonction <code>getPseudoRandom<\/code> permet de g\u00e9n\u00e9rer un al\u00e9a correct mais pas fiable, c&rsquo;est \u00e0 dire de qualit\u00e9 mais pas pour un usage cryptographique s\u00fcr. Il va servir principalement pour g\u00e9n\u00e9rer des identifiants d&rsquo;objets de r\u00e9f\u00e9rences.<\/p>\n<p style=\"text-align: justify;\">La seconde fonction <code>getStrongRandom<\/code> permet\u00c2\u00a0de g\u00e9n\u00e9rer un al\u00e9a beaucoup plus fiable, c&rsquo;est \u00e0 dire r\u00e9ellement non pr\u00e9dictible, pour un usage cryptographique s\u00fcr. Cependant cet al\u00e9a est pr\u00e9cieux parce que sa g\u00e9n\u00e9ration prendre du temps et peut consommer des ressources, ce qui limite la quantit\u00e9 de bon al\u00e9a que l&rsquo;on peut demander \u00e0 un instant donn\u00e9. Il doit donc \u00eatre r\u00e9serv\u00e9 strictement \u00e0 des usages requ\u00e9rant un al\u00e9a fiable.<\/p>\n<p style=\"text-align: justify;\">Or, la fonction <code>getPseudoRandom<\/code> fait appel \u00e0 la m\u00eame fonction interne <code>openssl_random_pseudo_bytes<\/code> que <code>getStrongRandom<\/code>, ce qui veut dire qu&rsquo;elle consomme de l&rsquo;al\u00e9a pr\u00e9cieux alors que ce n&rsquo;est pas n\u00e9cessaire.<\/p>\n<p style=\"text-align: justify;\">Cette fonction <code>getPseudoRandom<\/code> va \u00eatre modifi\u00e9e pour g\u00e9n\u00e9rer un al\u00e9a correct mais non fiable \u00e0 partir de la date\/heure et une pr\u00e9paration via une ou plusieurs fonctions de hachage. Elle ne devra en aucun cas \u00eatre utilis\u00e9e comme source pour g\u00e9n\u00e9rer des mots de passes de session ou de protection des objets, etc&#8230; n\u00e9cessitant un al\u00e9a de qualit\u00e9 cryptographique.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La biblioth\u00e8que nebule en PHP orient\u00e9 objet pr\u00e9sente deux fonctions de g\u00e9n\u00e9ration d&rsquo;al\u00e9a dans la classe d\u00e9di\u00e9e \u00e0 la cryptographie. Les fonctions : public function getPseudoRandom($size=32) public function getStrongRandom($size=32) La premi\u00e8re fonction getPseudoRandom permet de g\u00e9n\u00e9rer un al\u00e9a correct mais pas fiable, c&rsquo;est \u00e0 dire de qualit\u00e9 mais pas pour un usage cryptographique s\u00fcr. Il &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=2907\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Modification des sources d&rsquo;al\u00e9a<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[395,3,7,13,19,20],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2907"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2907"}],"version-history":[{"count":3,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2907\/revisions"}],"predecessor-version":[{"id":2910,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/2907\/revisions\/2910"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2907"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}