Skip to content

smarkets/erlang-bcrypt

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
This branch is 3 commits behind abhay:master.

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

erlang-bcrypt

https://travis-ci.org/smarkets/erlang-bcrypt.svg?branch=master

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

  1. 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"}
    
  1. 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.

Authors

About

Erlang wrapper for OpenBSD's Blowfish password hashing code

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 72.1%
  • Erlang 27.5%
  • Makefile 0.4%