# Mhash Functions

## Introduction

These functions are intended to work with » mhash. Mhash can be used to create checksums, message digests, message authentication codes, and more.

This is an interface to the mhash library. mhash supports a wide variety of hash algorithms such as MD5, SHA1, GOST, and many others. For a complete list of supported hashes, refer to the documentation of mhash. The general rule is that you can access the hash algorithm from PHP with MHASH_HASHNAME. For example, to access TIGER you use the PHP constant MHASH_TIGER.

> Note: This extension has been moved to the » PECL repository and is no longer bundled with PHP as of PHP 5.3.0. This extension is obsoleted by Hash.

## Requirements

To use it, download the mhash distribution from » its web site and follow the included installation instructions.

## Installation

You need to compile PHP with the --with-mhash[=DIR] parameter to enable this extension. DIR is the mhash install directory.

## Runtime Configuration

This extension has no configuration directives defined in php.ini.

## Resource Types

This extension has no resource types defined.

## Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

Here is a list of hashes which are currently supported by mhash. If a hash is not listed here, but is listed by mhash as supported, you can safely assume that this documentation is outdated.

- `MHASH_ADLER32`
- `MHASH_CRC32`
- `MHASH_CRC32B`
- `MHASH_GOST`
- `MHASH_HAVAL128`
- `MHASH_HAVAL160`
- `MHASH_HAVAL192`
- `MHASH_HAVAL256`
- `MHASH_MD4`
- `MHASH_MD5`
- `MHASH_RIPEMD160`
- `MHASH_SHA1`
- `MHASH_SHA256`
- `MHASH_TIGER`
- `MHASH_TIGER128`
- `MHASH_TIGER160`

## Examples

Example#1 Compute the MD5 digest and hmac and print it out as hex

`<?php
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "The hash is " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "The hmac is " . bin2hex($hash) . "<br />\n";
?>`

This will produce:

    The hash is d03cb659cbf9192dcd066272249f8412
    The hmac is 750c783e6ab0b503eaa86e310a5db738

## Table of Contents

- mhash_count — Get the highest available hash id
- mhash_get_block_size — Get the block size of the specified hash
- mhash_get_hash_name — Get the name of the specified hash
- mhash_keygen_s2k — Generates a key
- mhash — Compute hash