Current section

Files

Jump to
neo_faker lib nf hash.ex
Raw

lib/nf/hash.ex

defmodule Nf.Hash do
@moduledoc """
Functions to generating random hashes.
"""
@moduledoc since: "0.3.1"
import Nf.Hash.Utils
@doc """
Generate a random MD5 hash.
Returns an MD5 hash like `e35cb102765cfc56df21ba4c16e6a636`.
## Options
The accepted options are:
- `:case` - specifies the character case output
The values for :case can be:
- `:lower` - uses lower case characters (default)
- `:upper` - uses upper case characters
## Examples
iex> Nf.Hash.md5()
"e35cb102765cfc56df21ba4c16e6a636"
iex> Nf.Hash.md5(case: :upper)
"E35CB102765CFC56DF21BA4C16E6A636"
"""
@spec md5(Keyword.t()) :: String.t()
def md5(opts \\ []), do: generate_hash(:md5, opts)
@doc """
Generate a random SHA-1 hash.
Returns a SHA-1 hash like `c8719790cdfff41c37c75e0c848d2b57535255aa`.
## opts
The accepted opts are:
- `:case` - specifies the character case output
The values for :case can be:
- `:lower` - uses lower case characters (default)
- `:upper` - uses upper case characters
## Examples
iex> Nf.Hash.sha1()
"c8719790cdfff41c37c75e0c848d2b57535255aa"
iex> Nf.Hash.sha1(case: :upper)
"C8719790CDFFF41C37C75E0C848D2B57535255AA"
"""
@spec sha1(Keyword.t()) :: String.t()
def sha1(opts \\ []), do: generate_hash(:sha, opts)
@doc """
Generate a random SHA-256 hash.
Returns a SHA-256 hash like `d0ff021e810fb8f3442a14393604b0661b02f0dfcb347d80c9580af3ab5e7e6c`.
## Options
The accepted options is:
- `:case` - specifies the character case output
The values for :case can be:
- `:lower` - uses lower case characters (default)
- `:upper` - uses upper case characters
## Examples
iex> Nf.Hash.sha256()
"d0ff021e810fb8f3442a14393604b0661b02f0dfcb347d80c9580af3ab5e7e6c"
iex> Nf.Hash.sha256(case: :upper)
"D0FF021E810FB8F3442A14393604B0661B02F0DFCB347D80C9580AF3AB5E7E6C"
"""
@spec sha256(Keyword.t()) :: String.t()
def sha256(opts \\ []), do: generate_hash(:sha256, opts)
end