PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

hash_init> <hash_hmac_file
Last updated: Fri, 10 Oct 2008

view this page in

hash_hmac

(PHP 5 >= 5.1.2, PECL hash:1.1-1.5)

hash_hmacGénère une valeur de clé de hachage en utilisant la méthode HMAC

Description

string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output ] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

data

Le message qui sera haché.

key

Clé secrète partagée utilisée pour générer la variance HMAC de l'empreinte numérique.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule. La valeur par défaut est FALSE.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple #1 Exemple avec hash_hmac()

<?php
echo hash_hmac('ripemd160''Le rapide goupil brun sauta par dessus le chien paresseux.''secret');
?>

L'exemple ci-dessus va afficher :

a6f41314c7a3482836268cf504b066e08216e40f



add a note add a note User Contributed Notes
hash_hmac
Carlos Averett(caverett*@*corecodec,net)
04-Jul-2008 12:54
Generating OATH-compliant OTP (one time passwords) results in PHP:

<?php
$otp
= oath_truncate (oath_hotp ($key, $counter), $length);
function
oath_hotp ($key, $counter) {
       
// Counter
       
$bin_counter = pack ('C*', $counter);

       
// Pad to 8 chars
       
if (strlen ($bin_counter) < 8) {
               
$bin_counter = str_repeat (chr(0), 8 - strlen ($bin_counter)) . $bin_counter;
        }

       
// HMAC
       
$hash = hash_hmac ('sha1', $bin_counter, $key);
        return
$hash;
}

function
oath_truncate ($hash, $length = 6) {
       
// The last byte is used as an offset
       
$offset = hexdec (substr ($hash, 38)) & 0xf;

       
// Extract the relevant part, and clear the first bit
       
$hex_truncated = substr ($hash, $offset * 2, 8);
       
$bin_truncated = decbin (hexdec ($hex_truncated));
       
$bin_truncated[0] = '0';
       
$dec_truncated = bindec ($bin_truncated);

        return
substr ($dec_truncated, 0 - $length);
}
?>

hash_init> <hash_hmac_file
Last updated: Fri, 10 Oct 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites