rlustin / bcrypt_elixir

Bcrypt password hashing for Elixir

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bcrypt

Bcrypt password hashing algorithm for Elixir.

Bcrypt is a well-tested password-based key derivation function that can be configured to remain slow and resistant to brute-force attacks even as computational power increases.

This version is based on the OpenBSD version of Bcrypt and supports the $2b$ and $2a$ prefixes. For advice on how to use hashes with the $2y$ prefix, see this issue.

This library can be used on its own, or it can be used together with Comeonin, which provides a higher-level api.

Installation

  1. Add bcrypt_elixir to the deps section of your mix.exs file:
def deps do
  [
    {:bcrypt_elixir, "~> 0.12"}
  ]
end
  1. Make sure you have a C compiler installed. See the Comeonin wiki for details.

  2. Optional: during tests (and tests only), you may want to reduce the number of rounds so it does not slow down your test suite. If you have a config/test.exs, you should add:

config :bcrypt_elixir, :log_rounds, 4

Use

In most cases, you will just need to use the following three functions:

  • hash_pwd_salt - hash a password with a randomly-generated salt
  • verify_pass - check the password by comparing it with a stored hash
  • no_user_verify - perform a dummy check to make user enumeration more difficult

See the documentation for the Bcrypt module for more information.

For a lower-level api, see the documentation for Bcrypt.Base.

License

BSD. For full details, please read the LICENSE file.

About

Bcrypt password hashing for Elixir

License:Other


Languages

Language:C 52.8%Language:Elixir 45.7%Language:Makefile 1.4%