当前位置: 首页 > 知识库问答 >
问题:

相同散列算法存在时间差的原因是什么?

从劲
2023-03-14

我在CodeProject上读过这篇文章:

salted密码散列正确操作。

我在谷歌上搜索了一些可以帮助我基于PBKDF2-HMAC-SHA512生成哈希的东西。

我在GitHub上找到了这个库:

TherealMagicMike/PBKDF2.net。

正如您所知,HMACSHA1比HMACSHA512更快。而且出于安全考虑也不好。

但我发现了一些我不知道是真是假的东西!我在同一个页面中实现了这两种算法,并且理解Adriancs的算法比Mike的算法需要更长的时间。Adriancs的文章也不符合逻辑

所以,我想知道哪种算法最慢,哪种算法更好?

共有1个答案

向俊贤
2023-03-14

抱歉这么晚才发现这个。我是PBKDF2.NET的作者。速度的差异是由于相等的比较。库通过Defuse实现了一个慢速比较函数,在这个函数中,我选择让用户进行任何自定义比较。我的推理是,我不想创建一个具有附加的非必要实用函数的库,而是提供算法的适当实现。一个特定的应用程序是否需要慢速比较取决于应用程序,所以我排除了这一点。

 类似资料:
  • 我们的服务器应用程序似乎在一段时间内表现正常,但过了一段时间后,生存空间将填满100%,从那时起,堆使用量增加,GC周期(次要和主要)变得越来越频繁,最终堆耗尽。 这是“jstat-gcutil”的一部分 我的问题是这种应用程序行为背后的主要原因是什么?是太小的年轻空间或堆,其他一些JVM参数,还是只是一个普通的旧内存泄漏? 解决这个问题的最佳策略是什么,GC调优还是应用程序重构? JDK 1.6

  • 将输入的字符串散列成一个整数。 使用 String.split('') 和 Array.reduce() 创建输入字符串的散列,利用位移。 const sdbm = str => { let arr = str.split(''); return arr.reduce( (hashCode, currentVal) => (hashCode = currentVal.c

  • 问题内容: 当我尝试运行程序时,出现以下错误 请帮忙 问题答案: 从Javadoc: 如果Java虚拟机找不到声明为native的方法的适当本机语言定义,则抛出该异常。 这是与JNI相关的错误。loadJacobLibrary试图加载名为jacob-1.14.3-x86的本机库,但在java.library.path定义的路径上找不到该库。启动JVM时,应将此路径定义为系统属性。例如 在Windo

  • 在这里抛出RejectedExecutionException是否有其他原因? java.util.concurrent.RejectedExecutionException:任务java.util.concurrent.FutureTask@4194a5f0被java.util.concurrent.ThreadPoolExecutor@41a36e90拒绝[终止,池大小=0,活动线程=0,排队

  • 本文向大家介绍python计算时间差的方法,包括了python计算时间差的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python计算时间差的方法。分享给大家供大家参考。具体分析如下: 1、问题: 给定你两个日期,如何计算这两个日期之间间隔几天,几个星期,几个月,几年? 2、解决方法: 标准模块datetime和第三方包dateutil(特别是dateutil的rrule.coun

  • 问题内容: 尽管存在SQL的ANSI标准,但为什么SQL发行版是如此非标准?SQL数据库的工作方式确实存在许多有意义的差异,还是我一直在使用的两个数据库:MS- SQL和PostgreSQL?为什么会出现这些差异? 问题答案: 这是“隐身锁定”的一种形式。乔尔在这里详细介绍: http://www.joelonsoftware.com/articles/fog0000000056.html htt