哈希密码的特点是,即使同一个密码,每次加密出来的密码都是不一样的,非常的安全,而且和php的password_hash|password_verify函数是通用的。
下面是go语言的示例代码
package main
import (
"fmt"
"golang.org/x/crypto/bcrypt"
)
func PasswordHash(text string) (string, error) {
bytes, err := bcrypt.GenerateFromPassword([]byte(text), 14)
return string(bytes), err
}
func PasswordVerify(text, hash string) bool {
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(text))
return err == nil
}
func main() {
password := "123456"
hash, _ := PasswordHash(password)
match := PasswordVerify(password, hash)
fmt.Println(match)
}