package hashing import ( "RenewCMS/internal/domain/hash" "golang.org/x/crypto/bcrypt" ) const bcryptCost = 12 type BcryptHasher struct{} func NewBcryptHasher() *BcryptHasher { return &BcryptHasher{} } func (b *BcryptHasher) Hash(value string) (string, error) { hashed, err := bcrypt.GenerateFromPassword([]byte(value), bcryptCost) if err != nil { return "", err } return string(hashed), nil } func (b *BcryptHasher) Compare(hashed string, value string) error { return bcrypt.CompareHashAndPassword([]byte(hashed), []byte(value)) } var _ hash.Hasher = &BcryptHasher{}