代码拉取完成,页面将自动刷新
同步操作将从 dromara/dongle 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package dongle
import (
"fmt"
"golang.org/x/crypto/bcrypt"
)
var (
invalidBcryptRoundsError = func() error {
return fmt.Errorf("bcrypt: invalid bcrypt round, the round is outside allowed range (4,31)")
}
)
// ByBcrypt signs by bcrypt.
// 通过 bcrypt 签名
func (s sign) ByBcrypt(rounds int) sign {
if len(s.src) == 0 {
return s
}
hash, err := bcrypt.GenerateFromPassword(s.src, rounds)
if rounds < 4 || rounds > 31 || err != nil {
s.Error = invalidBcryptRoundsError()
return s
}
s.dst = hash
return s
}
// ByBcrypt verify by bcrypt.
// 通过 bcrypt 验签
func (v verify) ByBcrypt(sign interface{}) bool {
var hashedPassword []byte
switch v := sign.(type) {
case string:
hashedPassword = string2bytes(v)
case []byte:
hashedPassword = v
}
err := bcrypt.CompareHashAndPassword(hashedPassword, v.src)
if err != nil {
return false
}
return true
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。