https://github.com/cdepillabout/password
datatypes and functions for easily working with passwords in Haskell
https://github.com/cdepillabout/password
hacktoberfest haskell password
Last synced: 7 months ago
JSON representation
datatypes and functions for easily working with passwords in Haskell
- Host: GitHub
- URL: https://github.com/cdepillabout/password
- Owner: cdepillabout
- Created: 2019-03-25T03:30:56.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-11-10T08:23:28.000Z (about 1 year ago)
- Last Synced: 2025-05-17T13:05:21.389Z (8 months ago)
- Topics: hacktoberfest, haskell, password
- Language: Haskell
- Homepage: http://hackage.haskell.org/package/password
- Size: 302 KB
- Stars: 57
- Watchers: 4
- Forks: 16
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# password
[](http://github.com/cdepillabout/password/actions/workflows/ci.yml)
[](./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](./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`](http://hackage.haskell.org/package/password-types/docs/Data-Password-Types.html)
module contains the base datatypes.
The [password](./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`](http://hackage.haskell.org/package/password/docs/Data-Password-Bcrypt.html))
with the functions for the hashing and checking of passwords.
The [password-instances](./password-instances) package and
[`Data.Password.Instances`](http://hackage.haskell.org/package/password-instances/docs/Data-Password-Instances.html)
module adds convenient instances for passwords, like
[`FromJSON`](http://hackage.haskell.org/package/aeson/docs/Data-Aeson.html#t:FromJSON)
and
[`PersistField`](http://hackage.haskell.org/package/persistent/docs/Database-Persist-Class.html#t: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`.