Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 为什么bcrypt库CompareHashAndPassword方法很慢?_Go_Bcrypt - Fatal编程技术网

Go 为什么bcrypt库CompareHashAndPassword方法很慢?

Go 为什么bcrypt库CompareHashAndPassword方法很慢?,go,bcrypt,Go,Bcrypt,我想比较密码和使用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.0

我想比较密码和使用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("------------------------")
结果:

开始比较:2018-03-22:53:09.142380

完成比较:2018-03-22:53:10.347585


你能帮我吗?

缓慢是bcrypt的一个设计特性,因为如果它很快,就很容易对密码哈希进行暴力破解。发件人:

除了加入salt以防止彩虹表攻击外,bcrypt是一个自适应函数:随着时间的推移,迭代次数可以增加以使其变慢,因此即使计算能力增加,它仍然能够抵抗蛮力搜索攻击


缓慢是bcrypt的一个设计特性,因为如果它很快,就很容易对密码哈希进行暴力破解。发件人:

除了加入salt以防止彩虹表攻击外,bcrypt是一个自适应函数:随着时间的推移,迭代次数可以增加以使其变慢,因此即使计算能力增加,它仍然能够抵抗蛮力搜索攻击


bcrypt应该很慢,这就是重点。所需时间完全取决于系统和可用的cpu周期。您建议使用哪个库进行密码加密?因为bcrypt lib非常慢,这就是重点。用于密钥加密的快速库将是无用的。慢才是安全的。bcrypt应该慢,这就是重点。所需时间完全取决于系统和可用的cpu周期。您建议使用哪个库进行密码加密?因为bcrypt lib非常慢,这就是重点。用于密钥加密的快速库将是无用的。速度慢是它安全的原因。好的,我写了一个简单的web应用程序,您建议使用哪种加密算法md5,sha512,…?使用bcrypt。它是专门为密码哈希而设计的。OP之所以这样问,是因为他想授权用户密码。我来这里也是为了同样的原因。如果授权用户密码需要10秒,那么我的加载时间很慢。那么,如果用户因为登录时间太长而离开我的网站,授权用户又有什么意义呢?OP根据他的评论提出的问题是,是否有更好的授权方式,他做错了什么,或者他是否应该使用另一个库。我也是:正如答案所说,缓慢是一个特征。它可以防止暴力攻击。不,没有更好的方法了。好的,我写了一个简单的web应用程序,你推荐使用哪种加密算法?使用bcrypt。它是专门为密码哈希而设计的。OP之所以这样问,是因为他想授权用户密码。我来这里也是为了同样的原因。如果授权用户密码需要10秒,那么我的加载时间很慢。那么,如果用户因为登录时间太长而离开我的网站,授权用户又有什么意义呢?OP根据他的评论提出的问题是,是否有更好的授权方式,他做错了什么,或者他是否应该使用另一个库。我也是:正如答案所说,缓慢是一个特征。它可以防止暴力攻击。不,没有更好的办法了。