PYTHON hash_hmac

is this article helpful?
|
Python replacement for PHP's hash_hmac [ edit | history ]
import hmac
h = hmac.new(key, data, digest_module)
# hex output:
result = h.hexdigest()
# raw output:
result = h.digest()


Here's an example using sha256, first in php, then python:
echo hash_hmac("sha256","a", "1");

Python version:
import hmac,hashlib
key='1'
data='a'
print hmac.new(key, data, hashlib.sha256).hexdigest()

Result in both cases is c6e693d0b35805080632bc2469e1154a8d1072a86557778c27a01329630f8917
or
import hashlib
import hmac

def hash_hmac(algo, data, key):
    res = hmac.new(key.encode(), data.encode(), algo).hexdigest()
    return res

print(hash_hmac('ripemd160', 'The quick brown fox jumped over the lazy dog.', 'secret'))

returns b8e7ae12510bdfb1812e463a7f086122cf37e4f7

PHP hash_hmac

PHP original manual for hash_hmac [ show | php.net ]

hash_hmac

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_hmacGenerate a keyed hash value using the HMAC method

Description

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

Parameters

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)

data

Message to be hashed.

key

Shared secret key used for generating the HMAC variant of the message digest.

raw_output

When set to TRUE, outputs raw binary data. Default value (FALSE) outputs lowercase hexits.

Return Values

Returns a string containing the calculated message digest as lowercase hexits unless raw_output is set to true in which case the raw binary representation of the message digest is returned.

Examples

Example #1 hash_hmac() example

<?php
echo hash_hmac('ripemd160''The quick brown fox jumped over the lazy dog.''secret');
?>

The above example will output:

b8e7ae12510bdfb1812e463a7f086122cf37e4f7

See Also

  • hash() - Generate a hash value (message digest)
  • hash_init() - Initialize an incremental hashing context
  • hash_hmac_file() - Generate a keyed hash value using the HMAC method and the contents of a given file