package secret import ( "golang.org/x/crypto/bcrypt" ) // Bcrypt permet de calculer un hash en utilisant l’algorithme 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 d’entrée. func (h Bcrypt) Hash(data []byte) []byte { hashed, _ := bcrypt.GenerateFromPassword(data, h.cost) return hashed } // Compare vérifie qu’une donnée d’entré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 }