package config import ( "regexp" "golang.org/x/crypto/bcrypt" ) func isBcrypt(s string) bool { b, err := regexp.MatchString(`^\$2[ayb]\$.{56}$`, s) if err != nil { return false } return b } // CheckPassword compares given password p with the admin password func (c *Config) CheckPassword(p string) bool { ap := c.AdminPassword() if isBcrypt(ap) { err := bcrypt.CompareHashAndPassword([]byte(ap), []byte(p)) return err == nil } return ap == p }