29 lines
526 B
Go
29 lines
526 B
Go
package core
|
|
|
|
import (
|
|
"github.com/matthewhartstonge/argon2"
|
|
)
|
|
|
|
func HashPassword(password string) (string, error) {
|
|
argon := instanceArgon2()
|
|
|
|
hash, err := argon.HashEncoded([]byte(password))
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return string(hash), nil
|
|
}
|
|
|
|
func ComparePassword(password string, hash string) (bool, error) {
|
|
ok, err := argon2.VerifyEncoded([]byte(password), []byte(hash))
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return ok, nil
|
|
}
|
|
|
|
func instanceArgon2() argon2.Config {
|
|
return argon2.DefaultConfig()
|
|
}
|