如何使用 PHP 5.5 版正确安装 Libsodium。我正在尝试按照https://paragonie.com/book/pecl-libsodium/read/00-intro.md#installing-libsodium上的说明进行操作
以下是我执行的步骤:
转到http://windows.php.net/downloads/pecl/releases/libsodium/1.0.6/
下载“php_libsodium-1.0.6-5.5-nts-vc11-x64.zip”并解压文件。
在我的目录“C:\Program Files (x86)\PHP\v5.5”中复制“libsodium.dll”,其中“php.exe”
在我的目录“C:\Program Files (x86)\PHP\v5.5\ext”中复制“php_libsodium.dll”
在 php.ini 文件中启用“extension=php_libsodium.dll”
重启服务器
但是当我通过编写一个简单的 PHP 测试文件对其进行测试时:
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
// hash the password and return an ASCII string suitable for storage
$hash_str = sodium_crypto_pwhash_str(
"mypassword",
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);
echo "hash: " . $hash_str;
?>
结果页面显示错误:
致命错误:在第 7 行的 C:\PHP\testLibsodium.php 中调用未定义的函数 sodium_crypto_pwhash_str()
Libsodium 库似乎没有安装,因为它不知道该功能。在 PHP 5.5 版中安装 PHP Libsodium 我需要做什么?非常感谢你。
更新:我已经按照@iann 的建议安装了 X86 版本并运行以下代码:
$storeInDatabase = \Sodium\crypto_pwhash_str(
"safasfdwr32sfdfas234",
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);
现在似乎正在读取该函数,但出现错误:
注意:使用未定义的常量 SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE - 假定为“SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE”
注意:使用未定义的常量 SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE - 假定为“SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE”
警告:Sodium\crypto_pwhash_str() 期望参数 2 很长
可捕获的致命错误:crypto_pwhash_str():无效参数
这是否意味着我的 libsodium 安装正确,但为什么会出现错误?再次感谢你。