如何用PHP第5.5节正确安装Libsodium。我正试着按照https://paragonie.com/book/pecl-libsodium/read/00-intro.md#installing-libsodium上的指示
以下是我所做的步骤:
但是当我通过编写一个简单的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行sodium_crypto_pwhash_str()中的未定义函数C:\PHP\testLibsodium.php
库library似乎没有安装,因为它不知道函数。在PHP5.5版本中安装PHP需要做些什么?非常感谢。
更新:我按照@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():无效参数
这是否意味着我的error安装正确,但是为什么我会出错呢?再次感谢您。
发布于 2018-02-13 10:51:28
在将库移到版本7.2中的本地PHP之前,sodium_*函数并不在全局命名空间中。来自手册
在使用PECL的space的PHP 7.2中,下面的函数在钠名空间中定义。在PHP7.2中,名称空间改为sodium_前缀(以符合PHP内部开发标准)。
因此,如果要从PECL安装,则需要使用前面的函数名。就你而言:
$hash_str = \Sodium\crypto_pwhash_str(
...https://stackoverflow.com/questions/48764866
复制相似问题