这两个函数执行相同的操作(当两者使用相同的参数时,它们会生成相同的加密密钥)。
它们设计上的唯一区别是,Rfc2898DeriveBytes提供了更多的加密算法,而KeyDerivation提供的加密算法则较少,而且还是一个需要下载的包。(仅预装在 ASP.NET/ASP.NET Core 中,除非我弄错了。)
从性能角度来看(基准是我自己的),在某一点上KeyDerivation速度要快得多,尤其是在SHA-1计算中,但在连续测试 10 到 15 分钟后,它们似乎趋于平衡,所以我不能真正说出哪个是更高效。我可以说的是,您需要对 进行额外的分配Rfc2898DeriveBytes,您可以立即处置它,或者在应用程序的整个生命周期中重复使用它,而KeyDerivation在使用时不需要任何仪式。当然,这是以其有限的算法为代价的。
如果您不断地处置并实例一个新的Rfc2898DeriveBytes(不重复使用,90% 的情况是由于无法更改提供的密码),我相信KeyDerivation速度会快得多。(我的基准测试显示速度下降了 50%。)
| 归档时间: |
|
| 查看次数: |
2962 次 |
| 最近记录: |