在PHP

时间:2016-08-25 17:27:04

标签: php apache memory memory-management libsodium

Libsodium建议在使用Argon2散列函数时选择“保证可用”的最大内存量。我的问题是我们如何找到这个?根据我的理解,由于我的网站是互动的(即使用MySQL,几个请求页面等),我可能会遇到各种各样的情况,例如:

  1. 让多个用户大致同时访问同一个散列函数页面,使系统过载并耗尽物理内存,
  2. 让用户访问其他页面,只要有一个用户尝试使用该功能,其内存使用量就会产生类似的“崩溃”,
  3. 两者的组合
  4. 显然,这种情况发生的可能性相当低,更不用说有这么多用户同时使用服务器了。但是,如果我想要能够承受的最强哈希,我至少需要粗略地了解这一点。我总共只有1GB的RAM。

    我可以在PHP脚本中添加内存检查以确保服务器不会崩溃吗?我什么都做不了?

    (参见:https://download.libsodium.org/libsodium/content/password_hashing/the_argon2i_function.html

1 个答案:

答案 0 :(得分:0)

如果您担心内存耗尽,请分配一些交换空间。

您肯定希望使用至少32 MB的RAM和> = 3次传递。 \Sodium\CRYPTO_PWHASH_*_INTERACTIVE为您提供此最低限额。