Files
RenewCMS/internal/infrastructure/hashing/BcryptHasher.go
T

30 lines
585 B
Go

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{}