Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/synacor/argon2id
A utility library for serializing hashed passwords with its salt using argon2id
https://github.com/synacor/argon2id
argon2id password-hashing
Last synced: about 1 month ago
JSON representation
A utility library for serializing hashed passwords with its salt using argon2id
- Host: GitHub
- URL: https://github.com/synacor/argon2id
- Owner: synacor
- License: gpl-3.0
- Created: 2019-03-18T14:07:55.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-05-24T01:40:59.000Z (over 1 year ago)
- Last Synced: 2024-03-27T09:22:08.026Z (10 months ago)
- Topics: argon2id, password-hashing
- Language: Go
- Homepage:
- Size: 27.3 KB
- Stars: 2
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# argon2id - A utility for hashing passwords using argon2id
[![Documentation](https://godoc.org/github.com/github.com/synacor/argon2id?status.svg)](http://godoc.org/github.com/synacor/argon2id) [![Go Report Card](https://goreportcard.com/badge/github.com/synacor/argon2id)](https://goreportcard.com/report/github.com/synacor/argon2id)
This library provides some additional functionality around [golang.org/x/crypto/argon2](https://godoc.org/golang.org/x/crypto/argon2) in order to provide a mechanism for serializing the hashed password with its salt and inputs and then a method for comparing a password against this serialized hash.
## Getting Started
```
$ go get -u github.com/synacor/argon2id
````## Usage
```
// using sane defaults
hashedPassword, err := argon2id.DefaultHashPassword(password)
// $argon2id19$1,65536,4$366MYd8GMqu7TA1pkpzivA$CpSlS4AFCi9byh6RYPzzSMBF4ZPyKSYfT7ITzPQYLjE// using custom input parameters
hashedPassword, err := argon2id.HashPassword(password, 1, 64*1024, 4, 32)...
err := argon2id.Compare(hashedPassword, password)
if err == nil {
// passwords match
} else {
// passwords do not match
}
```## Command Line Tool
There's also a command line tool that can be installed:
```
$ go install github.com/synacor/argon2id/...
```Then you can run it to generate hashes and compare hashes.
```
$ argon2id # user is prompted for password
# Password:
# $argon2id19$1,65536,4$5Z9wtvqXV8lL8J4YNSbmmQ$kn6Q3RZzopEcI1BreQHcVu8Jbc+Ob8XIgHEEnpieixY$ argon2id -c '$argon2id19$1,65536,4$5Z9wtvqXV8lL8J4YNSbmmQ$kn6Q3RZzopEcI1BreQHcVu8Jbc+Ob8XIgHEEnpieixY'
# Password:
# OK - password matches hashed password$ argon2id -c '$argon2id19$1,65536,4$5Z9wtvqXV8lL8J4YNSbmmQ$kn6Q3RZzopEcI1BreQHcVu8Jbc+Ob8XIgHEEnpieixY'
# Password:
# synacor/argon2id: hashedPassword is not the hash of the given password
```For more information, see the help
```
$ argon2id -h
```