Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 days 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 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-10T08:23:28.000Z (about 2 months ago)
- Last Synced: 2024-12-14T02:06:31.736Z (14 days ago)
- Topics: hacktoberfest, haskell, password
- Language: Haskell
- Homepage: http://hackage.haskell.org/package/password
- Size: 302 KB
- Stars: 55
- Watchers: 5
- Forks: 16
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# password
[![CI](https://github.com/cdepillabout/password/actions/workflows/ci.yml/badge.svg)](http://github.com/cdepillabout/password/actions/workflows/ci.yml)
[![BSD3 license](https://img.shields.io/badge/license-BSD3-blue.svg)](./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`.