Files
clean-architecture-go-v2/pkg/password/password.go
T

32 lines
597 B
Go

package password
import (
"golang.org/x/crypto/bcrypt"
)
//Password password
type Password struct{}
//NewService create a new fake password
func NewService() *Password {
return &Password{}
}
//Generate a new password
func (p *Password) Generate(raw string) (string, error) {
hash, err := bcrypt.GenerateFromPassword([]byte(raw), 10)
if err != nil {
return "", err
}
return string(hash), nil
}
//Compare compare two passwords
func (p *Password) Compare(p1, p2 string) error {
err := bcrypt.CompareHashAndPassword([]byte(p1), []byte(p2))
if err != nil {
return err
}
return nil
}