ikurotime / gitgud

public
main / internal/infra/security/bcrypt_hasher.go
454 B · Go Raw
 1package security
 2
 3import "golang.org/x/crypto/bcrypt"
 4
 5type BcryptHasher struct{ cost int }
 6
 7func NewBcryptHasher() BcryptHasher {
 8	return BcryptHasher{cost: bcrypt.DefaultCost}
 9}
10
11func (h BcryptHasher) Hash(plain string) (string, error) {
12	b, err := bcrypt.GenerateFromPassword([]byte(plain), h.cost)
13	return string(b), err
14}
15func (h BcryptHasher) Compare(hash, plain string) error {
16	return bcrypt.CompareHashAndPassword([]byte(hash), []byte(plain))
17}