Mirror for https://github.com/erlangpack/bcrypt

Clone this repo:
  1. c2156ff Fix linking on SmartOS/Illumos/Solaris. (#3) by Jasper Siepkes · 7 years ago master 1.0.2
  2. 7ddab11 Fix compilation on SmartOS/solaris (#2) by Heinz N. Gies · 7 years ago 1.0.1
  3. 8d5342c Update readme title by David de Boer · 7 years ago
  4. 58d94b2 Convert readme to Markdown by David de Boer · 7 years ago
  5. 4762267 Update repository link by David de Boer · 7 years ago

bcrypt

Build Status Hex pm

erlang-bcrypt is a wrapper around the OpenBSD Blowfish password hashing algorithm, as described in A Future-Adaptable Password Scheme by Niels Provos and David Mazieres.

Basic build instructions

  1. Build it (project uses rebar, but I’ve included a Makefile):

    make
    
  2. Run it (simple way, starting sasl, crypto and bcrypt):

    erl -pa ebin -boot start_sasl -s crypto -s bcrypt
    

Basic usage instructions

Hash a password using a salt with the default number of rounds:

1> {ok, Salt} = bcrypt:gen_salt().
{ok,"$2a$12$sSS8Eg.ovVzaHzi1nUHYK."}
2> {ok, Hash} = bcrypt:hashpw("foo", Salt).
{ok,"$2a$12$sSS8Eg.ovVzaHzi1nUHYK.HbUIOdlQI0iS22Q5rd5z.JVVYH6sfm6"}

Verify the password:

3> {ok, Hash} =:= bcrypt:hashpw("foo", Hash).
true
4> {ok, Hash} =:= bcrypt:hashpw("bar", Hash).
false

Configuration

The bcrypt application is configured by changing values in the application's environment:

default_log_rounds Sets the default number of rounds which define the complexity of the hash function. Defaults to 12.

mechanism Specifies whether to use the NIF implementation ('nif') or a pool of port programs ('port'). Defaults to 'nif'.

Note: the NIF implementation no longer blocks the Erlang VM scheduler threads

pool_size Specifies the size of the port program pool. Defaults to 4.

Original authors

Hunter Morris & Mrinal Wadhwa.