多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 使用场景 + 对用户输入的密码进行加密 + 用户登录时对用户的密码进行比对 ### 例子 ```go package main import ( "errors" "fmt" "golang.org/x/crypto/bcrypt" ) func main() { userPassword := "123456" passwordbyte, err := GeneratePassword(userPassword) if err != nil { fmt.Println("加密出错了") } fmt.Println(passwordbyte) // passwordstring := string(passwordbyte) // fmt.Println(passwordstring) //模拟这个字符串是从数据库读取出来的 值是12345678 mysql_password := "$2a$10$I8WaWXgiBw8j/IBejb3t/.s5NoOYLvoQzL6mIM2g3TEu4z0HenzqK" isOk, _ := ValidatePassword(userPassword, mysql_password) if !isOk { fmt.Println("密码错误") return } fmt.Println(isOk) } //GeneratePassword 给密码就行加密操作 func GeneratePassword(userPassword string) ([]byte, error) { return bcrypt.GenerateFromPassword([]byte(userPassword), bcrypt.DefaultCost) } //ValidatePassword 密码比对 func ValidatePassword(userPassword string, hashed string) (isOK bool, err error) { if err = bcrypt.CompareHashAndPassword([]byte(hashed), []byte(userPassword)); err != nil { return false, errors.New("密码比对错误!") } return true, nil } ``` **注意** `golang.org/x/crypto/bcrypt`这个包下载有些难度,需要的小伙伴可以自行百度 官网地址:http://golang.org/x/crypto/bcrypt