Error with golang "undefined (type string has no field or method)"
14,992
In main
, your variable name hash
contains a long string. So it shadows the package name hash
. You should rename one or the other.
Author by
lab0
Updated on June 09, 2022Comments
-
lab0 almost 2 years
i use this library golang.org/x/crypto/bcrypt to hash password and compare hash with password but I having problem see below:
main.go file
package main import ( "./hash" ) func main() { password := "passwd" hash := "hhhhhhhhaaaaaaaaaassssssssssshhhhhhhhhhh" check := hash.CheckPasswordHash(password, hash) }
hash/hash.go file
package hash import "golang.org/x/crypto/bcrypt" func HashPassword(password string) (string, error) { bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14) return string(bytes), err } func CheckPasswordHash(password, hash string) bool { err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password)) return err == nil }
if you run this:
$ go run main.go
It will show this error:
./main.go:11:15: hash.CheckPasswordHash undefined (type string has no field or method CheckPasswordHash)
why this error?