我第一次尝试使用 Libsodium 进行加密,但遇到了错误。我在 XAMPP 上运行所有内容;钠位于 /ext/ 文件夹中,我已将其添加extension=sodium到 php.ini 文件中。
这是我的代码。
// This refers to the previous code block.
require "safeCrypto.php";
// Do this once then store it somehow:
$key = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES);
$message = 'We are all living in a yellow submarine';
$ciphertext = safeEncrypt($message, $key);
$plaintext = safeDecrypt($ciphertext, $key);
echo $ciphertext;
echo $plaintext;
echo phpversion();
Run Code Online (Sandbox Code Playgroud)
它抛出这个错误。
警告:使用未定义的常量 SODIUM_CRYPTO_SECRETBOX_KEYBYTES - 假设“SODIUM_CRYPTO_SECRETBOX_KEYBYTES”(这将在 PHP 的未来版本中引发错误)位于第6行D:\xampp\htdocs\php\crypttest.php致命错误:未捕获 TypeError: random_bytes()期望参数 1 为整数,字符串在 D:\xampp\htdocs\php\crypttest.php:6 中给出
get_loaded_extensions()显示钠未安装,我不明白为什么。php_sodium.dll文件存在于 ext 文件夹中,我已将其添加 …