brute v0.1.0 Brute
Brute is a package that generates combinations of various characters.
For example, Brute can generate all of the combinations of the characters a b c using the following:
Brute.generic(?a..?c, 3)
Will generate aaa, aac, … , ccb, ccc (no order gurantee).
By providing a range, brute will generate all combinations from the specified lengths.
Brute.generic(?a..?c, 1..3)
Will generate something similar to the following: a, b , c, …, z, aa, ab, …, zy, zz, … aaa, aab, …, zzy, zzz
Since most functions in Brute
return a stream, they can combined with other
operations. For example, calculating a hash:
'abcdefghijkpqrstuvwxyzABCDEFGHIJKPQRSTUVWXYZ0123456789`~!@#$%^&*()_+{}:"<>?"`'
|> Brute.generic(1..20)
|> Stream.map(fn str ->
:crypto.hash(:sha, str) |> Base.encode16
end)
Summary
Functions
Generates combinations for abcdefghijklmnopqrstuvwxyz specifined by n
.
iex> Brute.alpha(1) |> Enum.to_list |> length
26
Returns a stream of character combinations of length low
to high
, by specifying low = 1, high = 3 with the character set of a b c the following stream will be returned
Functions
Generates combinations for abcdefghijklmnopqrstuvwxyz specifined by n
.
iex> Brute.alpha(1) |> Enum.to_list |> length
26