【发布时间】:2021-12-02 15:57:37
【问题描述】:
我在 GO gin 中使用过 bcrypt 包,奇怪的是当我对任何密码进行加密时,它需要 500 毫秒到 900 毫秒的响应时间
代码:
package main
import (
"github.com/gin-gonic/gin"
"golang.org/x/crypto/bcrypt"
)
type User struct {
ID uint
Name string
Email string
Password []byte
}
func (user *User) HashPassword(password []byte) {
hashedPassword, _ := bcrypt.GenerateFromPassword(password, 12)
user.Password = hashedPassword
}
func main() {
r := gin.Default()
r.GET("/user", func(c *gin.Context) {
user := User{
Name: "test",
Email: "test@gmail.com",
Password: []byte("password"),
}
user.HashPassword(user.Password)
c.JSON(200, gin.H{
"message": "done",
})
})
r.Run(":5050")
}
我来自 Postman status: 200 OK Time: 800ms 的基准测试
为什么这个 pkg 需要这么长时间!?
【问题讨论】:
-
md5 much 快,所以如果速度是您唯一需要解决的问题,请使用它(但如果您使用 md5,请不要怪我!我从不推荐使用md5!)。有时您必须了解自己真正想要什么。
-
@Volker 我达到了
bcrypt 10的级别,现在速度非常好,谢谢