代码统计
# Go version >= 1.16
go install github.com/hhatto/gocloc/cmd/gocloc@latest
# Go version < 1.16
go get -u github.com/hhatto/gocloc/cmd/gocloc
# 使用
gocloc .
哈希包
# 安装
go get golang.org/x/crypto
# 使用
import "golang.org/x/crypto/bcrypt"
// BcryptHash 使用 bcrypt 对密码进行加密
func BcryptHash(password string) string {
// GenerateFromPassword 的第二个参数是 cost 值。建议大于 12,数值越大耗费时间越长
bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14)
return string(bytes)
}
// BcryptCheck 对比明文密码和数据库的哈希值
func BcryptCheck(password, hash string) bool {
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
return err == nil
}
// BcryptIsHashed 判断字符串是否是哈希过的数据
func BcryptIsHashed(str string) bool {
// bcrypt 加密后的长度等于 60
return len(str) == 60
}
jwt 包
# 安装
go get github.com/golang-jwt/jwt
限流
go get github.com/ulule/limiter/v3
终端高亮输出
go get github.com/mgutz/ansi
命令行模式
go get github.com/spf13/cobra
转换工具
# 处理大小写
go get github.com/iancoleman/strcase
# 处理英文单复数
go get github.com/gertd/go-pluralize