La fonction de hachage en PHP est une méthode spéciale prédéfinie et utilisée pour indiquer une chaîne sous la forme d'une valeur définie mesurée à partir des caractères de la chaîne. Il est populaire pour son application comme algorithme de chiffrement et comme représentation de valeur d'index pour les éléments de la base de données. Les types d’algorithmes de hachage les plus couramment utilisés dans le processus de cryptage des données sont SHA1() et MD5(). En PHP, les fonctions de hachage sont de quatre types différents, comme Hash_equals, Hash_final, Hash_init et Hash_copy.
PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
PHP est un langage de programmation côté serveur et son rôle principal est de traiter les fonctionnalités back-end requises pour une application particulière. Dans ce processus, l’authentification joue un rôle essentiel car les vulnérabilités peuvent facilement exploiter les données. Une façon de sécuriser les données consiste à les stocker dans la base de données sous leur forme originale, mais cela pourrait conduire à une situation dans laquelle l'intrus/la personne non autorisée pourrait facilement prendre les données et les compromettre. Cette situation peut être facilement gérée en utilisant les fonctions de hachage.
Les fonctions de hachage chiffrent les données dans leur vraie forme donc sans en changer la signification. Ainsi, lorsqu'un utilisateur saisit les données sous leur forme réelle, les données seront cryptées dans le backend et ainsi l'authentification et l'autorisation du processus de données se produiront. Les algorithmes de hachage les plus couramment utilisés sont md5(), sha1() et quelques fonctions de hachage. Ces algorithmes sont utilisés par le développeur pour authentifier que les données saisies par l'utilisateur sont correctes ou non pour poursuivre le processus.
Cet algorithme est l'un des puissants algorithmes de hachage qui calcule le hachage md5, c'est-à-dire le hachage du nombre hexadécimal de 16 ou 32 caractères d'une chaîne particulière. Cette chaîne transmise sera convertie au format hexadécimal crypté.
Syntaxe :
string md5 ($string, $getRawOutput)
La syntaxe ci-dessus indiquait la $string comme chaîne d'entrée. La sortie brute est une entrée facultative car le développeur souhaite la convertir en 16 bits ou 32 bits. Si 16 bits doivent être activés, ils doivent être définis sur TRUE Boolean et transmis à la fonction. S'il n'est pas défini, la valeur par défaut de 32 bits est définie automatiquement.
Exemple :
md5 (EduCBA, TRUE)
Cet algorithme est l'un des puissants algorithmes de hachage qui calcule le hachage sha1, c'est-à-dire le hachage au format binaire de 20 caractères ou le nombre hexadécimal de 40 caractères d'une chaîne particulière. Cette chaîne transmise sera convertie au format hexadécimal crypté.
Syntaxe :
string sha1 ($string, $getRawOutput)
La syntaxe ci-dessus indiquait la $string comme chaîne d'entrée. La sortie brute est une entrée facultative car le développeur souhaite qu'elle soit de 20 bits ou 40 bits. Si 20 bits doivent être activés, ils doivent être définis sur TRUE Boolean et transmis à la fonction. S'il n'est pas défini, la valeur par défaut de 40 bits est définie automatiquement.
Exemple :
sha1 (EduCBA, TRUE)
Vous trouverez ci-dessous quelques fonctions de hachage utilisées en PHP pour crypter/convertir les données de la forme originale en forme hachée.
Cette fonction compare les deux chaînes en même temps qu'elles soient égales ou non. Cette fonction renvoie TRUE lorsque les chaînes sont égales et FALSE si les chaînes ne sont pas égales. Les deux arguments doivent être les mêmes pour comparer les chaînes, sinon il renverra immédiatement false sans même comparer les chaînes par ordre alphabétique et parfois la longueur de la chaîne peut également être révélée en cas d'attaque temporelle.
Cette fonction renvoie un résumé de hachage de la chaîne d'entrée transmise à cette fonction. Lorsque la sortie brute est définie sur TRUE, elle donne des données binaires brutes et lorsqu'elle est définie sur FALSE, elle donne un nombre hexadécimal minuscule. Cette fonction renvoie un résumé hexadécimal calculé de la chaîne en sortie.
Cette fonction est utilisée avec les algorithmes de hachage, c'est-à-dire md5 (), sha (), etc. Cette fonction avec les algorithmes de hachage produit une sortie à utiliser avec hash_update (), hash final (), etc. La sortie du hash_init est stocké dans une chaîne ou une variable et transmis à l'une des fonctions.
Cette fonction permet de copier le contexte de hachage. La chaîne passée en entrée à la fonction est hachée par l'un des algorithmes utilisés dans la fonction hash_init() et la sortie correspondante serait la chaîne hachée qui est transmise à cette fonction. Cette fonction renvoie une forme hachée de la sortie donnée par la fonction hash_init.
The following is a list of hashing function in PHP explained in detail,
Code:
<?php $c = hash_init("md5"); hash_update($c, "content"); $copy_c = hash_copy($c); echo hash_final($c); hash_update($copy_c, "content"); echo hash_final($copy_c), "\n"; ?>
Output:
Code:
<?php $expected = crypt('leela123', '$2a$07$user$'); $right = crypt('leela123', '$2a$07$user$'); $wrong = crypt('leeeela233', '$2a$07$usedwrongstring$'); var_dump(hash_equals($expected, $right)); var_dump(hash_equals($expected, $wrong)); ?>
Output:
Code:
<?php $hash = hash_init('sha1'); hash_update($hash, 'This is an example of PHP Hash function'); echo hash_final($hash); ?>
Output:
In this article, we discussed what is hashing and its various algorithms. Also, we discussed a few hashing functions used in PHP to encrypt the data to prevent malicious and vulnerable attacks. Because of these attacks, the data is not secure and loss of data occurs. So, the hashing technique was introduced so that there will be no loss of data and it will be secured by various attacks.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!