5f5cbeab4f
Signed-off-by: Nagy Károly Gábriel <k@jpi.io>
27 lines
780 B
Go
27 lines
780 B
Go
package htpasswd
|
|
|
|
import "golang.org/x/crypto/bcrypt"
|
|
|
|
// Bcrypt facilitates bcrypt style hashing
|
|
type Bcrypt struct{}
|
|
|
|
// Hash returns the hashed variant of the password or an error
|
|
func (*Bcrypt) Hash(password string) (string, error) {
|
|
passwordBytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return string(passwordBytes), nil
|
|
}
|
|
|
|
// Match verifier the hashed password using the original
|
|
func (*Bcrypt) Match(password, hashedPassword string) error {
|
|
return bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
|
|
}
|
|
|
|
// Name returns the name of the hasher
|
|
func (*Bcrypt) Name() string { return "bcrypt" }
|
|
|
|
// Prefix returns the hasher's prefix
|
|
func (*Bcrypt) Prefix() string { return "$2a$" }
|