PHP Sodium не установлен? - PullRequest
       41

PHP Sodium не установлен?

0 голосов
/ 13 апреля 2019

Я пытаюсь использовать Libsodium впервые для шифрования, но я столкнулся с ошибкой! Я запускаю все на XAMPP, а натрий находится в папке / ext /, и я добавил extension=sodium в php.ini

Это мой код:

<?php
// 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();

Выдает эту ошибку:

<br />
<b>Warning</b>:  Use of undefined constant SODIUM_CRYPTO_SECRETBOX_KEYBYTES - assumed 'SODIUM_CRYPTO_SECRETBOX_KEYBYTES' (this will throw an Error in a future version of PHP) in <b>D:\xampp\htdocs\php\crypttest.php</b> on line <b>6</b><br />
<br />
<b>Fatal error</b>:  Uncaught TypeError: random_bytes() expects parameter 1 to be integer, string given in D:\xampp\htdocs\php\crypttest.php:6

Я использую PHP 7.2.10

UPDATE

Ран get_loaded_extensions и натрий НЕ установлены, и я не могу понять, почему. php_sodium.dll существует в папке ext, и я добавил extension=sodium в php.ini, среди других расширений, которые загружаются правильно.

...