cdepillabout/password

datatypes and functions for easily working with passwords in Haskell

Haskell

61

278 commits

updated Jul 2, 2026

See the code

README

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.

This project also provides password-cli a CLI to test and use password.

hacktoberfest
haskell
password

Contributors

Vlix

184 commits

cdepillabout

64 commits

blackheaven

22 commits

ivanbakel

4 commits

cdepillabout/password

datatypes and functions for easily working with passwords in Haskell

Haskell

61

278 commits

updated Jul 2, 2026

See the code

README

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.

This project also provides password-cli a CLI to test and use password.

hacktoberfest
haskell
password

Contributors

Vlix

184 commits

cdepillabout

64 commits

blackheaven

22 commits

ivanbakel

4 commits

Languages

Haskell

100.0%