我想比较密码并使用bcrypt库,但 CompareHashAndPassword 方法非常慢。为什么这个方法很慢?
var b []byte = []byte("1234")
var bx []byte = []byte("$2a$14$RWV9NhWmlQmSoV9toM/k9OIzaNcYssCiauPVAljiX2NGhqvyxcOMy")
fmt.Println("Start Compare: ", time.Now().Format("2006-01-02 15:04:05.000000"))
err := bcrypt.CompareHashAndPassword(bx, b)
fmt.Println("Completed Compare: ", time.Now().Format("2006-01-02 15:04:05.000000"))
fmt.Println("------------------------")
Run Code Online (Sandbox Code Playgroud)
结果:
开始比较: 2018-03-22 22:53:09.142380
完成比较:2018-03-22 22:53:10.347585
你能帮助我吗?
缓慢是 bcrypt 的一个设计特点,因为如果它很快,就很容易暴力破解密码哈希。来自维基百科:
除了加入盐来防止彩虹表攻击之外,bcrypt 也是一种自适应功能:随着时间的推移,迭代次数可以增加以使其变慢,因此即使计算能力不断增加,它仍然可以抵抗暴力搜索攻击。
| 归档时间: |
|
| 查看次数: |
3823 次 |
| 最近记录: |