Skip to content

cdepillabout/password

Repository files navigation

password

CI BSD3 license

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.