This repository holds some example implementations of general concepts used in password hashing.
ATTENTION:
The shown exaples are not production ready implementations and shall not be used for any real password security implementation without further security fortification!
The hasher implementations below implement the hasher interface.
type Hasher interface {
Generate(password string) string
Validate(password, hash string) bool
}
You can clone this repo and run it when you have the go compiler toolchain installed.
$ git clone https://github.com/zekroTutorials/hashing .
$ go run main.go
Otherwise, you can use the provided Dockerfile to build an image and run it.
$ git clone https://github.com/zekroTutorials/hashing .
$ docker build . -t hashing
$ docker run --name tmp hashing && docker rm tmp
This repository was created as demonstration for my (german) introduction video about password hashing.
Here you can find more resources (in english) about the topic:
- https://auth0.com/blog/hashing-passwords-one-way-road-to-security/
- https://www.gearbrain.com/password-security-hashing-salting-peppering-2647766220.html
- https://nordpass.com/blog/pepper-password/
- https://en.wikipedia.org/wiki/Argon2
- https://www.twelve21.io/how-to-choose-the-right-parameters-for-argon2/
- https://github.com/P-H-C/phc-winner-argon2
- https://md5hashing.net/hash
- https://crackstation.net/
- https://www.devglan.com/online-tools/rsa-encryption-decryption
© 2020 Ringo Hofffmann (zekro Development).
Covered by the MIT License.