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}