# `Apero.Crypto.Hash`
[🔗](https://github.com/Lorenzo-SF/apero/blob/3.0.0/lib/apero/crypto/hash.ex#L1)

Cryptographic hashing functions.

Provides SHA-256, SHA-512, MD5, and HMAC hashing, all returning
lowercase hex-encoded strings.

## Examples

    iex> Apero.Crypto.Hash.sha256("hello")
    "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"

# `hmac`

```elixir
@spec hmac(binary(), binary()) :: binary()
```

HMAC-SHA256 (hex encoded).

# `md5`

```elixir
@spec md5(binary()) :: binary()
```

MD5 hash (hex encoded). NOTE: MD5 is cryptographically broken — only for checksums.

# `sha256`

```elixir
@spec sha256(binary()) :: binary()
```

SHA-256 hash (hex encoded).

# `sha512`

```elixir
@spec sha512(binary()) :: binary()
```

SHA-512 hash (hex encoded).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
