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 的名称 } ?>
Le résultat de sortie est :
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 )
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])
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 )
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; //输出校验码 ?>
Le résultat de sortie est ;
[Recommandations associées]
1. Sujets connexes recommandés : "Fonction de cryptage PHP"
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!