{"id":671,"date":"2023-09-28T19:32:40","date_gmt":"2023-09-28T23:32:40","guid":{"rendered":"https:\/\/ve2cuy.com\/?page_id=671"},"modified":"2024-09-18T10:06:34","modified_gmt":"2024-09-18T14:06:34","slug":"420-5d3-notion-de-hashage","status":"publish","type":"page","link":"https:\/\/ve2cuy.com\/index.php\/420-5d3-notion-de-hashage\/","title":{"rendered":"420-5D3 &#8211; Notion de Hashage"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction au Hashage<\/h2>\n\n\n\n<p>Le hashage est un processus de conversion d&rsquo;une donn\u00e9e (g\u00e9n\u00e9ralement une cha\u00eene de caract\u00e8res) en une valeur de longueur fixe, g\u00e9n\u00e9ralement sous forme de nombre hexad\u00e9cimal. Cette valeur de hachage est unique pour une entr\u00e9e donn\u00e9e, ce qui permet d&rsquo;identifier rapidement des donn\u00e9es, de v\u00e9rifier l&rsquo;int\u00e9grit\u00e9 des donn\u00e9es et de stocker des mots de passe de mani\u00e8re s\u00e9curis\u00e9e.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi Utiliser le Hashage ?<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>S\u00e9curit\u00e9 des mots de passe :<\/strong> Le hashage est couramment utilis\u00e9 pour stocker les mots de passe de mani\u00e8re s\u00e9curis\u00e9e. Au lieu de stocker les mots de passe en texte brut, les syst\u00e8mes stockent leur valeur de hachage, ce qui rend difficile leur r\u00e9cup\u00e9ration par des tiers en cas de violation de donn\u00e9es.<\/li>\n\n\n\n<li><strong>V\u00e9rification de l&rsquo;int\u00e9grit\u00e9 :<\/strong> Le hashage permet de v\u00e9rifier si les donn\u00e9es ont \u00e9t\u00e9 alt\u00e9r\u00e9es. Si la valeur de hachage calcul\u00e9e \u00e0 partir des donn\u00e9es originales correspond \u00e0 la valeur de hachage stock\u00e9e, les donn\u00e9es sont intactes.<\/li>\n\n\n\n<li><strong>Stockage efficace :<\/strong> Les valeurs de hachage sont de longueur fixe, ce qui permet un stockage efficace dans les bases de donn\u00e9es et la gestion rapide des donn\u00e9es.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Utilisation du Hashage en PHP<\/h2>\n\n\n\n<p>En PHP, vous pouvez utiliser la fonction <code>hash()<\/code> pour calculer des valeurs de hachage en utilisant divers algorithmes de hachage tels que MD5, SHA-1, SHA-256, etc.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemple 1 : Calcul d&rsquo;un Hash MD5<\/h3>\n\n\n\n<p>phpCopy code<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$data = \"Ceci est une cha\u00eene de donn\u00e9es \u00e0 hacher.\";\n$hash = hash('md5', $data);\necho \"MD5 Hash : $hash\";<\/pre>\n\n\n\n<p>R\u00e9sultat :<\/p>\n\n\n\n<p><code>MD5\u00a0Hash\u00a0:\u00a05d41402abc4b2a76b9719d911017c592<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Exemple 2 : Calcul d&rsquo;un Hash SHA-256<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$data = \"Ceci est une autre cha\u00eene de donn\u00e9es \u00e0 hacher.\";\n$hash = hash('sha256', $data);\necho \"SHA-256 Hash : $hash\";<\/pre>\n\n\n\n<p>R\u00e9sultat :<\/p>\n\n\n\n<p><code>SHA-256&nbsp;Hash&nbsp;:&nbsp;322501f48c8a849c6be7e5a37c3a49c5206de1f3b64c4ee7f348bca59b6cd7ce<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Exemple 3 : Utilisation de Sel (Salt) pour le Hashage<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$password = \"MotDePasseSecret\";\n$salt = bin2hex(random_bytes(16)); \/\/ G\u00e9n\u00e8re un sel de 16 octets\n$hashed_password = hash('sha256', $salt . $password);\necho \"Mot de passe hach\u00e9 avec sel : $hashed_password\";<\/pre>\n\n\n\n<p>R\u00e9sultat (le r\u00e9sultat variera car le sel est g\u00e9n\u00e9r\u00e9 al\u00e9atoirement) :<\/p>\n\n\n\n<p><code>Mot de passe hach\u00e9 avec sel : 4a65d4ff2c852a58c93ef18e42b6eef010a3b28a47b3ff7d88bf647f7a1934f5<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Exemple 4 : V\u00e9rification d&rsquo;un Mot de Passe<\/h3>\n\n\n\n<p>R\u00e9sultat (d\u00e9pend de la correspondance ou de la non-correspondance des hachages) :Copy code<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$stored_hashed_password = \"HashStockeIci\";\n$user_input_password = \"MotDePasseSecret\";\n\n\/\/ Recalcule le hachage\n$hashed_input_password = hash('sha256', $salt . $user_input_password);\n\n\/\/ Compare les hachages\nif ($hashed_input_password === $stored_hashed_password) {\n    echo \"Mot de passe correct.\";\n} else {\n    echo \"Mot de passe incorrect.\";\n}\n<\/pre>\n\n\n\n<p><code>Mot de passe correct.<\/code><\/p>\n\n\n\n<p>Assurez-vous de stocker les hachages de mots de passe de mani\u00e8re s\u00e9curis\u00e9e et de suivre les meilleures pratiques de s\u00e9curit\u00e9 lors de la gestion des mots de passe dans vos applications PHP.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Stocker les hash dans Oracle<\/h2>\n\n\n\n<p>Pour stocker le hachage de mots de passe dans une base de donn\u00e9es Oracle \u00e0 l&rsquo;aide de PHP, vous pouvez utiliser la biblioth\u00e8que Oracle Database (OCI8). Voici un exemple de code qui illustre comment ins\u00e9rer un hachage de mot de passe dans une base de donn\u00e9es Oracle :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/\/ Informations de connexion \u00e0 la base de donn\u00e9es Oracle\n$host = 'localhost'; \/\/ Adresse du serveur Oracle\n$port = '1521'; \/\/ Port du serveur Oracle\n$service_name = 'ORCL'; \/\/ Nom du service Oracle\n$username = 'votre_utilisateur'; \/\/ Nom d'utilisateur Oracle\n$password = 'votre_mot_de_passe'; \/\/ Mot de passe Oracle\n\n\/\/ Connexion \u00e0 la base de donn\u00e9es Oracle\n$conn = oci_connect($username, $password, \"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$host)(PORT=$port))(CONNECT_DATA=(SERVICE_NAME=$service_name)))\");\n\nif (!$conn) {\n    $e = oci_error();\n    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);\n}\n\n\/\/ Donn\u00e9es \u00e0 ins\u00e9rer\n$username = 'utilisateur123';\n$hashed_password = 'le_hachage_du_mot_de_passe'; \/\/ Assurez-vous d'avoir hach\u00e9 le mot de passe auparavant\n\n\/\/ Requ\u00eate d'insertion\n$query = \"INSERT INTO utilisateurs (nom_utilisateur, mot_de_passe_hash) VALUES (:nom_utilisateur, :mot_de_passe_hash)\";\n\n\/\/ Pr\u00e9paration de la requ\u00eate\n$stid = oci_parse($conn, $query);\n\n\/\/ Liaison des param\u00e8tres\noci_bind_by_name($stid, ':nom_utilisateur', $username);\noci_bind_by_name($stid, ':mot_de_passe_hash', $hashed_password);\n\n\/\/ Ex\u00e9cution de la requ\u00eate\nif (oci_execute($stid)) {\n    echo \"Mots de passe hach\u00e9s ins\u00e9r\u00e9s avec succ\u00e8s dans la base de donn\u00e9es Oracle.\";\n} else {\n    $error = oci_error($stid);\n    echo \"Erreur lors de l'insertion des mots de passe hach\u00e9s : \" . $error['message'];\n}\n\n\/\/ Fermeture de la connexion\noci_free_statement($stid);\noci_close($conn);\n?><\/pre>\n\n\n\n<p>Assurez-vous d&rsquo;adapter les informations de connexion \u00e0 votre configuration Oracle. Dans cet exemple, nous nous connectons \u00e0 la base de donn\u00e9es Oracle, pr\u00e9parons une requ\u00eate d&rsquo;insertion, lions les param\u00e8tres et ex\u00e9cutons la requ\u00eate pour ins\u00e9rer le hachage du mot de passe dans une table de la base de donn\u00e9es Oracle.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Le hashage est une technique fondamentale pour s\u00e9curiser les donn\u00e9es, notamment les mots de passe, dans les applications PHP. En utilisant les fonctions de hachage de PHP et en suivant les meilleures pratiques, vous pouvez garantir la s\u00e9curit\u00e9 des donn\u00e9es sensibles et prot\u00e9ger vos utilisateurs contre les violations de donn\u00e9es. \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction au Hashage Le hashage est un processus de conversion d&rsquo;une donn\u00e9e (g\u00e9n\u00e9ralement une cha\u00eene de caract\u00e8res) en une valeur de longueur fixe, g\u00e9n\u00e9ralement sous forme de nombre hexad\u00e9cimal. Cette valeur de hachage est unique pour une entr\u00e9e donn\u00e9e, ce qui permet d&rsquo;identifier rapidement des donn\u00e9es, de v\u00e9rifier l&rsquo;int\u00e9grit\u00e9 des donn\u00e9es et de stocker des [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-671","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ve2cuy.com\/index.php\/wp-json\/wp\/v2\/pages\/671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ve2cuy.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ve2cuy.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/index.php\/wp-json\/wp\/v2\/comments?post=671"}],"version-history":[{"count":1,"href":"https:\/\/ve2cuy.com\/index.php\/wp-json\/wp\/v2\/pages\/671\/revisions"}],"predecessor-version":[{"id":672,"href":"https:\/\/ve2cuy.com\/index.php\/wp-json\/wp\/v2\/pages\/671\/revisions\/672"}],"wp:attachment":[{"href":"https:\/\/ve2cuy.com\/index.php\/wp-json\/wp\/v2\/media?parent=671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}