gob/secret/bcrypt.go

30 lines
690 B
Go
Raw Permalink Normal View History

2023-09-23 20:15:37 +00:00
package secret
import (
"golang.org/x/crypto/bcrypt"
)
// Bcrypt permet de calculer un hash en utilisant lalgorithme Bcrypt.
type Bcrypt struct {
cost int
}
// Bcrypt initialise une fonction de hashage de type Bcrypt et de coût cost.
func NewBcrypt(cost int) Bcrypt {
return Bcrypt{cost: cost}
}
// Hash retourne le hash des bytes dentrée.
func (h Bcrypt) Hash(data []byte) []byte {
hashed, _ := bcrypt.GenerateFromPassword(data, h.cost)
return hashed
}
// Compare vérifie quune donnée dentrée a bien pour hash la valeur hashed.
func (h Bcrypt) Compare(data []byte, hashed []byte) bool {
err := bcrypt.CompareHashAndPassword(hashed, data)
return err == nil
}