Maison > développement back-end > tutoriel php > Bibliothèque d'extension de chiffrement PHP - Explication détaillée de l'utilisation des exemples de bibliothèque d'extension Mhash

Bibliothèque d'extension de chiffrement PHP - Explication détaillée de l'utilisation des exemples de bibliothèque d'extension Mhash

黄舟
Libérer: 2023-03-07 12:58:01
original
3593 Les gens l'ont consulté

Bibliothèque d'extensions de chiffrement PHP—Bibliothèque d'extensions Mhash

Qu'est-ce que la bibliothèque d'extensions Mhash : Mhash est une bibliothèque d'extensions de chiffrement PHP irréversible basée sur le principe des mathématiques discrètes , qui n'est pas activé par défaut. mhash peut être utilisé pour créer des valeurs de vérification, des résumés de messages, des codes d'authentification de message et enregistrer des informations clés (telles que des mots de passe) sans le texte original.

1. Installation de la bibliothèque d'extensions Mhash

L'installation de la bibliothèque d'extensions Mhash est similaire à l'installation de la bibliothèque d'extensions Mcrypt. Je ne la présenterai pas en détail ici. pouvez vous y référer. Article précédent "Bibliothèque d'extensions de chiffrement PHP—Bibliothèque d'extensions Mcrypt" !

2.Constantes de la bibliothèque d'extension Mhash

La bibliothèque Mhash prend en charge plusieurs algorithmes de hachage tels que MD5, SHA, CRC32, etc., et peut être générée à l'aide de mhash_count() et fonctions mhash_get_hash_name() Noms d'algorithmes pris en charge. Jetons un coup d'œil à l'exemple de code :

<?php
header("Content-Type:text/html; charset=utf-8");
$num = mhash_count();  //函数返回最大的hash id
echo "mhash库支持的算法有:<br>";
for($i=0;$i<=$num;$i++){
    echo $i."=>".mhash_get_hash_name($i)."<br>"."";       //输出每一个hash id 的名称
}
?>
Copier après la connexion

Le résultat de sortie est :

Bibliothèque dextension de chiffrement PHP - Explication détaillée de lutilisation des exemples de bibliothèque dextension Mhash

Remarque : si vous utilisez les constantes ci-dessus dans applications réelles, vous devez ajouter MHASH_ comme préfixe devant le nom de l'algorithme, par exemple, CRC32 est représenté par MHASH_CRC32.

3.Application Mhash

Par rapport aux plus de 30 fonctions de la bibliothèque d'extensions Mcrypt, il n'y a que 5 fonctions dans la bibliothèque Mhash, à l'exception de les deux utilisées ci-dessus En plus de ces fonctions, les trois autres fonctions suivantes sont introduites.

(1)fonction mhash_get_block_size()

Le format de la syntaxe de la fonction est le suivant :

int mhash_get_block_size ( int $hash )
Copier après la connexion

Cette fonction est utilisée pour obtenir le bloc taille du paramètre hash , par exemple : mhash_get_biock_size(MHASH_CRC32).

(2)fonction mhash()

Le format de syntaxe de la fonction est le suivant :

string mhash(int hash,string data[,string key])
Copier après la connexion

Cette fonction renvoie une valeur de hachage. Le hachage du paramètre est l'algorithme à utiliser, les données du paramètre sont les données à chiffrer et la clé du paramètre est la clé utilisée pour le chiffrement.

(3) Fonction mhash_keygen_s2k()

Le format de la syntaxe de la fonction est le suivant :

string mhash_keygen_s2k ( int $hash , string $password , string $salt, int $bytes )
Copier après la connexion

Cette fonction renverra une unité selon les paramètres password et salt sont la valeur de la clé en octets, et le paramètre hash est l'algorithme à utiliser. Le sel est une valeur fixe de 8 octets. Si la valeur donnée par l'utilisateur est inférieure à 8 octets, elle sera complétée par des 0.

Dans l'exemple suivant, la fonction mhash_keygen_s2k() est utilisée pour générer un code de contrôle et la fonction bin2hex() est utilisée pour convertir le résultat binaire en hexadécimal. Le code spécifique est le suivant :

<?php
header("Content-Type:text/html; charset=utf-8");
$filename = "08.txt";                          // 文件路径
$str = file_get_contents($filename);            //读取文件内容到变量$str中
$hash = 2 ;                                     //设置hash值
$password = "111";                             //设置变量$password
$salt = "1234";                                //设置变量$salt
$key = mhash_keygen_s2k(1,$password,$salt,10);  //生成key 值
$str_mhash =bin2hex(mhash($hash,$str,$key));    //使用$key 值、$hash值对字符串$str 加密
echo "文件 08.txt 的校验码是:".$str_mhash;  //输出校验码
?>
Copier après la connexion

Le résultat de sortie est ;

Bibliothèque dextension de chiffrement PHP - Explication détaillée de lutilisation des exemples de bibliothèque dextension Mhash


[Recommandations associées]

1. Sujets connexes recommandés : "Fonction de cryptage PHP"

2.Bibliothèque d'extensions de cryptage PHP – Exemple d'utilisation de la bibliothèque d'extensions Mcrypt



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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal