Maison  >  Article  >  développement back-end  >  PHP implémente un mhash amélioré

PHP implémente un mhash amélioré

*文
*文original
2017-12-26 15:25:461425parcourir

Comment implémenter mhash amélioré en PHP ? Cet article présente principalement la fonction mhash améliorée implémentée dans PHP. Lors de l'utilisation de la fonction mhash par défaut, une erreur est signalée et deux solutions sont trouvées. J'espère que cela aide tout le monde.

Quand j'ai utilisé la fonction de cryptage mhash de php aujourd'hui, une erreur a été signalée : Erreur fatale : Appel à une fonction non définie mhash()

mhash est une fonction intégrée de php mais une erreur a été signalée lors de son utilisation..

Après quelques recherches, nous avons résumé deux méthodes :

1. Importez le fichier d'extension php_mhash.dll De plus, vous devez également importer libmhash.dll (le chargement de. la bibliothèque mhash dépend de ce fichier),

Chargez " LoadFile C:/php/libmhash.dll" dans le fichier de configuration d'Apache Httpd.conf

2, utilisez la fonction d'amélioration mhash personnalisée.

function hmac_md5($key, $data)
{
    if (extension_loaded('mhash'))
    {
        return bin2hex(mhash (MHASH_MD5, $data, $key));
    }
    $b = 64;
    if (strlen($key) > $b)
    {
        $key = pack('H*', md5($key));
    }
    $key  = str_pad($key, $b, chr(0x00));
    $ipad = str_pad('', $b, chr(0x36));
    $opad = str_pad('', $b, chr(0x5c));
    $k_ipad = $key ^ $ipad;
    $k_opad = $key ^ $opad;
    return md5($k_opad . pack('H*', md5($k_ipad . $data)));
}


Les paramètres $key et $data dans la fonction hmac_md5 correspondent aux paramètres 3,2 d'origine de mhash

Les deux méthodes peuvent utiliser avec succès la fonction de cryptage mhash de PHP <.>

Recommandations associées :

Bibliothèque d'extension de chiffrement PHP - Exemple de détails d'utilisation de la bibliothèque d'extension Mhash

PHP Comment installer la bibliothèque d'extensions Mhash_PHP tutoriel

Comment faire PHP formhash spécifiquement

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!

Déclaration:
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