【问题标题】:XXHash for PHP (without module/extension)XXHash for PHP(无模块/扩展)
【发布时间】:2016-11-01 12:28:39
【问题描述】:

对于在线服务,我目前正在使用 XXHash。现在我正在尝试为网上商店创建一个插件,但这些商店都使用 PHP,主要是在共享托管平台上。问题在于可用的 XXHash 插件都需要安装 XXHash 扩展。这在共享托管平台上很难要求。现在我想知道我是否应该从 XXHash 转移到对散列的支持较少的模块,或者是否有可能在不使用扩展的情况下让 XXHash 在 PHP 上工作。 Web 服务是其中一种想法,但在我们的案例中,XXHash 是专门出于隐私原因使用的,因此这个 Web 服务将是一个糟糕的解决方案。

有什么想法吗?

【问题讨论】:

  • "但是 XXHash 是专门出于隐私原因使用的" 你是怎么得到 xxhash 的?
  • xxhash 的整个要点似乎是令人眼花缭乱的快速执行速度,而原生 PHP 根本无法做到这一点,因此存在这样的实现几乎没有意义。此外,正如 PeeHaa 所暗示的那样,xxhash 明确不是加密的,即出于安全目的不一定是一个很好的选择。
  • XXHash 确实是因为性能优势而被选中的,我们的应用程序和 nodejs 服务器确实是这种情况。然而,对于 PHP,性能并不是什么大问题,这仍然可以通过模块实现。但是,我们希望能够“透明地”支持这一点,在这种情况下,需要 XXHash 作为 PHP 库。出于隐私原因,我们正在使用它,因此应用程序/插件不需要发送数据本身,而是这些哈希值用作此数据的指纹。
  • 这里也一样。我正在尝试在 javascript 中制作工作证明算法,而 PHP 端不需要那么快,但是我对 SHA1 的尝试非常糟糕,因为 PHP 中的 SHA1 比 js 快 10 倍以上,这意味着它可以很容易地被规避只需让浏览器外部的普通程序进行哈希处理即可。我想看看我能多快让 JS 端工作,这样它至少是合理的。
  • 我希望你不要用它来散列密码。

标签: php hash php-extension


【解决方案1】:

似乎唯一的替代方法是使用不同的语言进行哈希函数。也许编译这里使用的 C 代码:https://github.com/mscdex/node-xxhash/blob/master/src/hash_64.hpp 并将其与 exec 一起使用。 (只要此命令未列入黑名单)

【讨论】:

    【解决方案2】:

    我在这里用PHP实现了

    https://github.com/exussum12/xxhash

    请记住,xxhash 专为大文件/流的快速散列而设计。请不要将其用于密码。

    正如 repo 所说,如果您需要额外的速度,请使用 PHP 扩展。这是为了易于使用而不是执行速度而设计的

    【讨论】:

      猜你喜欢
      • 2012-11-27
      • 2014-11-29
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 2022-12-15
      • 2016-08-27
      • 2011-06-04
      相关资源
      最近更新 更多