GO语言编程:GoLand 2022 (Win&Mac) v2022.3 中文激活版

下面是一个简单的 Golang 代码示例,用于实现密码登录功能:

```go

package main

import (

"fmt"

"golang.org/x/crypto/bcrypt"

)

func main() {

// 假设用户输入的密码为 "password"

password := "password"

// 对密码进行加密处理

hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)

if err != nil {

fmt.Println("密码加密失败!")

return

}

// 假设从数据库中获取的加密后的密码为 "hashedPassword"

storedPassword := "hashedPassword"

// 比较输入的密码与数据库中的密码是否一致

err = bcrypt.CompareHashAndPassword([]byte(storedPassword), []byte(password))

if err != nil {

fmt.Println("密码错误!")

return

}

fmt.Println("登录成功!")

}

```

代码中使用了 `golang.org/x/crypto/bcrypt` 包来对密码进行加密处理和比较操作。`bcrypt.GenerateFromPassword()` 函数接受两个参数,第一个参数是要加密的密码,第二个参数是加密的强度,这里使用了默认强度。

`bcrypt.CompareHashAndPassword()` 函数接受两个参数,第一个参数是从数据库中获取的加密后的密码,第二个参数是用户输入的密码。如果两个密码一致,函数将返回 `nil`,否则将返回一个错误。