A specification for password hashing libraries in Elixir, providing a unified interface for Argon2, Bcrypt, and Pbkdf2.
Comeonin is a specification for password hashing libraries in the Elixir programming language. It defines a common interface that libraries like Argon2, Bcrypt, and Pbkdf2 implement, ensuring consistent and secure password storage. The project solves the problem of fragmented password hashing implementations by providing a unified standard for Elixir developers.
Elixir developers building applications that require secure user authentication and password storage, particularly those who need flexibility in choosing hashing algorithms.
Developers choose Comeonin because it offers a standardized, security-focused approach to password hashing across multiple algorithms, with extensive documentation and clear recommendations. Its design simplifies integration and promotes best practices without locking users into a single hashing method.
Password hashing specification for the Elixir programming language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Defines standardized behaviours like Comeonin and Comeonin.PasswordHash, ensuring a consistent API across Argon2, Bcrypt, and Pbkdf2 libraries, as stated in the README.
Explicitly recommends Argon2 as the strongest option and provides clear alternatives with security trade-offs, based on documented best practices.
Offers Pbkdf2 with no C dependencies for Windows users, simplifying deployment in problematic environments, as highlighted in the README.
Includes detailed wiki guides on hashing, library selection, and deployment, helping developers implement securely with minimal guesswork.
As a specification, Comeonin requires installing and maintaining separate libraries like argon2_elixir, adding setup complexity compared to all-in-one solutions.
Version 5 introduced significant behavioral changes, necessitating upgrades and potentially breaking existing code, as detailed in the UPGRADE_v5 guide.
For Argon2 and Bcrypt, compiling C code can be time-consuming and error-prone, especially on Windows, limiting accessibility for some developers.