asciigoat's .htaccess and .htpasswd parser
https://asciigoat.org/httools
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
780 B
26 lines
780 B
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$" }
|
|
|