This repo provides packages for easily working with passwords in Haskell. This is mainly to be used for web applications that need to receive plain-text passwords from users, and store hashed passwords in a database.
The password-types package provides canonical datatypes for
plain-text and hashed passwords. This package has minimal dependencies. It is
meant to be used as a base for any other packages that wants to use these datatypes.
The Data.Password.Types
module contains the base datatypes.
The password package provides functions for working with
plain-text and hashed passwords.
Every algorithm has its own module in the form of Data.Password.ALGORITHM
(e.g. Data.Password.Bcrypt
)
with the functions for the hashing and checking of passwords.
The password-instances package and
Data.Password.Instances
module adds convenient instances for passwords, like
FromJSON
and
PersistField
.
In general, if you are writing a web application and need to handle passwords,
you should use the password
package together with password-instances
.