<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie n'a rien à voir avec le contenu de l'article,Vous pouvez mettre un exemple de code ou de description</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Bienvenue à lire cet article\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Cet article discute principalement PHP md5 Fonction générée 32 La signification et la structure des cordes bit\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># PHP md5 Fonction générée 32 Que représente un bit String??Explication détaillée du sens et de la structure</span></span><span>
exister PHP milieu,`</span><span><span class="hljs-title function_ invoke__">md5</span></span><span>()` Les fonctions sont largement utilisées pour générer des valeurs de hachage pour les données。很多开发者exister看到 `</span><span><span class="hljs-title function_ invoke__">md5</span></span><span>()` Retourné </span><span><span class="hljs-number">32</span></span><span> Quand un bit String,Sera curieux de savoir ce qu'il représente,Quelle est sa structure et sa signification?。Cet article analysera ce problème en détail。
</span><span><span class="hljs-comment">## un、MD5 Présentation de la fonction</span></span><span>
MD5(Message Digest Algorithm </span><span><span class="hljs-number">5</span></span><span>)是un种哈希函数,Il peut cartographier les données d'entrée de toute longueur à la sortie de la longueur fixe,Tout de suite </span><span><span class="hljs-number">128</span></span><span> Peu(</span><span><span class="hljs-number">16</span></span><span> octet)valeur de hachage。exister PHP milieu,`</span><span><span class="hljs-title function_ invoke__">md5</span></span><span>()` 函数默认返回un个 </span><span><span class="hljs-number">32</span></span><span> Peu的十六进制字符串。
```php
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$hash</span></span><span> = </span><span><span class="hljs-title function_ invoke__">md5</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$hash</span></span><span>; </span><span><span class="hljs-comment">// Sortir: fc3ff98e8c6a0d3087d515c0473f8677</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Le "FC3FF98E8C6A0D3087D515C0473F8677" renvoyé ici est la représentation hexadécimale de MD5.
Longueur fixe : La sortie de MD5 est fixe 128 bits, soit 16 octets, quelle que soit la durée de l'entrée. PHP utilise une représentation hexadécimale, chaque octet est représenté par deux caractères, il se termine donc avec 32 caractères.
Représentation hexadécimale : la plage de valeur de chaque caractère est 0-9 et AF . Par exemple, F dans FC3FF98E représente le binaire 1111 , C représente le binaire 1100 , etc.
Unicité (théorique): les valeurs de hachage MD5 sont généralement différentes pour différentes données d'entrée, mais en raison de la possibilité de collisions de hachage (combinaisons théoriques 2 ^ 128), il n'est pas garanti d'être absolument unique.
Irrrévabilité : MD5 est une fonction de hachage unidirectionnelle, et les données d'origine ne peuvent pas être restaurées directement via la valeur de hachage.
Le processus de calcul de MD5 est à peu près le suivant:
Remplissez les données : remplissez le message d'origine à un multiple de 512 bits et ajoutez la longueur du message à la fin.
Initialisez le tampon : Initialisez avec 4 registres 32 bits A, B, C et D.
Itération du bloc : divisez le message en blocs 512 bits, et chaque bloc met à jour le registre après 64 itérations.
Hash de sortie : Enfin, les valeurs de 4 registres sont combinées en une valeur de hachage 128 bits et converties en une chaîne hexadécimale 32 bits.
Bien que MD5 ne convient plus au stockage de mot de passe en raison de problèmes de sécurité (sujets aux collisions), il est toujours couramment utilisé pour:
Vérification de l'intégrité du fichier
Signature de données simple
Génération d'identité unique (comme le hachage URL)
Exemple:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">"example.txt"</span></span><span>;
</span><span><span class="hljs-variable">$hash</span></span><span> = </span><span><span class="hljs-title function_ invoke__">md5_file</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Déposé MD5 valeur: <span class="hljs-subst">$hash</span></span></span><span>";
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
La fonction MD5 () de PHP renvoie une chaîne hexadécimale 32 bits, représentant une valeur de hachage binaire 128 bits.
Il est irréversible, de longueur fixe et théoriquement unique.
Il est calculé en interne par le remplissage des données, l'itération et les registres.
La sécurité est limitée, mais elle a toujours de la valeur dans la génération d'identification de la somme de contrôle de fichiers.
En comprenant la structure et la signification de MD5, les développeurs peuvent l'utiliser plus raisonnablement tout en évitant de l'utiliser pour des scénarios avec des exigences de sécurité élevées.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie n'a rien à voir avec le contenu de l'article non plus,可以放un些演示或提示</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\nL'article a été lu,Merci!\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>