一、代码
package main
import (
"fmt"
"golang.org/x/crypto/bcrypt"
)
func main() {
hash, err := hashEncode("123456")
if err != nil {
fmt.Println(err)
}
fmt.Println("hash过的密码:", hash)
sourcePwd := "123456"
pwdMatch := comparePasswords(hash, sourcePwd)
if pwdMatch {
fmt.Println("验证密码成功!")
} else {
fmt.Println("验证密码失败!")
}
}
func hashEncode(pwd string) (string, error) {
hash, err := bcrypt.GenerateFromPassword([]byte(pwd), bcrypt.DefaultCost)
if err != nil {
return "", err
}
return string(hash), nil
}
func comparePasswords(hashedPwd string, sourcePwd string) bool {
err := bcrypt.CompareHashAndPassword([]byte(hashedPwd), []byte(sourcePwd))
if err != nil {
return false
}
return true
}
二、打印
hash过的密码: $2a$10$pEq3NmKjYpYQBgiuXPlBL.WPWjH6GYC2et0BG7E9qe90cXkb1xDoy
验证密码成功!
Process finished with exit code 0