Introduction

Cette extension fournit des fonctions qui peuvent être utilisées pour le traitement direct ou incrémental de messages de longueur arbitraire en utilisant une variété d'algorithmes de hachage, y compris la génération de valeurs HMAC et des dérivations de clés incluant HKDF et PBKDF2.

Il existe grosso modo trois catégories d'algorithmes de hachage, et une liste complète des algorithmes peut être trouvée dans la documentation pour hash_algos().

  • Algorithmes de somme de contrôle (tels que "crc32b" ou "adler32") : Ceux-ci sont utilisés pour calculer des sommes de contrôle, utiles dans des situations telles que la détection des erreurs de transmission. Ils sont souvent très rapides. Ces algorithmes génèrent souvent des valeurs facilement "devinables" ou peuvent être manipulés pour créer des collisions, ils sont donc totalement inadaptés à une utilisation cryptographique.
  • Algorithmes non cryptographiques (comme la famille xxHash) : Ceux-ci sont souvent utilisés pour calculer des valeurs de hachage pour des tables de hachage, car ils sont conçus pour produire une bonne distribution sur des entrées de chaîne arbitraires. Ils sont également généralement rapides, mais aussi inadaptés à une utilisation cryptographique.
  • Algorithmes cryptographiques (comme la famille SHA-2) : Ceux-ci sont conçus pour produire des valeurs de hachage représentatives de leurs entrées mais ne pouvant pas être devinées ni sujettes aux collisions. La performance est souvent une préoccupation secondaire, mais le matériel moderne supporte souvent une gestion spéciale pour ces algorithmes que PHP essaie d'utiliser lorsque disponible. Le Centre de ressources pour la sécurité informatique du NIST a » une explication des algorithmes actuellement approuvés par les Standards fédéraux de traitement de l'information des États-Unis.
    Attention

    Certains des premiers algorithmes cryptographiques, tels que "md4", "md5", et "sha1", se sont avérés être sujets à des attaques par collision et il est généralement recommandé de ne plus les utiliser pour des applications cryptographiques.

Voir également la FAQ sur le hachage sécurisé des mots de passe pour des informations sur les meilleures pratiques d'utilisation des fonctions de hachage dans la gestion des mots de passe.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top