以 20 或更多的成本提高散列速度

Posted

技术标签:

【中文标题】以 20 或更多的成本提高散列速度【英文标题】:Boost Up hashing speed with cost 20 or more 【发布时间】:2018-06-15 14:21:14 【问题描述】:

我正在使用

password_hash(myPassword,PASSWORD_DEFAULT,['cost'=>20]) 

php 中。 但它无法执行散列密码

致命错误:超过 30 秒的最大执行时间

我使用具有以下硬件的计算机: 16GB 内存 8GB 显卡 CPU 核心 i7-8700K 3.70GHz

如何在更短的时间内执行大笔成本??? 我需要用什么来启动我的电脑才能在更短的时间内获得良好的效果???

【问题讨论】:

当您尝试不使用第二个和第三个参数时会发生什么? password_hash(myPassword) ? password_hash docs 提供了一个示例脚本,用于为您的服务器计算合理的成本值(示例 #4)。你不应该随便挑一个。 这在我的 i5-6500 上需要 1.2 分钟。 password_hash() 是单线程操作,所以如果你超频你的 CPU 或者购买一个更高 IPC 的 CPU 那么你应该能够获得更好的时间。 将成本因子提高 1 意味着哈希密码的时间加倍。现在一个合理的因数是 10,所以你的因数需要大约 1000 倍。 【参考方案1】:

高成本的关键在于它需要更多的计算能力。要更快地散列大量成本,请在更快的机器上执行它。要使散列在您拥有的机器上可用,请选择一个能够产生合理(阅读:尽可能慢,尽可能快)散列时间的成本。

我们的目标是使其可用于一次性哈希来存储/检查密码,但对于试图通过多次尝试暴力破解哈希完全不可行。

20 迄今为止在实践中是可笑且无法使用的。

【讨论】:

从未意识到成本是指数级的。 12 和 20 之间的差异很大。

以上是关于以 20 或更多的成本提高散列速度的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearches 提高 搜索速度

pandas df.loc[z,x]=y 如何提高速度?

阿里安全开源隐私计算新技术:计算速度快20倍,通信成本低2倍,已登安全顶会...

将 SQL 地理转换为 SQL 几何或以其他方式提高查找速度

如何提高节点下线速度或避免因节点掉线产生网络风暴?

如何提高节点下线速度或避免因节点掉线产生网络风暴?