шифрование — PHP paragonie / halite — отсутствует натрий \ константы?

Я хочу реализовать простое шифрование.

Я использую новейшую версию PHP 7.1.8, и поскольку mcrypt устарела, я узнал о libsodium. Установил его, и вот как выглядит моя PHP информация:

PHP натрий

Кажется, все в порядке.

А затем я установил paragonie / halite v3.2.0 и просто попробовал простой пример со страницы github:

    $passwd = new HiddenString('correct horse battery staple');
// Use random_bytes(16); to generate the salt:
$salt = "\xdd\x7b\x1e\x38\x75\x9f\x72\x86\x0a\xe9\xc8\x58\xf6\x16\x0d\x3b";

$encryptionKey = KeyFactory::deriveEncryptionKey($passwd, $salt);

Выполнение этого возвращает:

Fatal error: Uncaught Error: Undefined constant 'Sodium\CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE' in /app/vendor/paragonie/halite/src/KeyFactory.php on line 274

введите описание изображения здесь

Посмотрев немного на код, я вижу, что код действительно использует эти константы.

Я видел, что старые версии расширения PHP использовались в \Sodium пространства имен, и поскольку подтверждено, что он стал расширением ядра PHP7.2, функции были реорганизованы для использования в качестве sodium_*,

Может быть, я что-то упускаю, но мой вопрос, может кто-нибудь сказать мне, в чем может быть причина, по которой я пропускаю эти константы?

Спасибо!

2

Решение

Я получил это работает с простой спецификацией версии:

pecl install libsodium-1.0.6

Не уверен, что происходит под капотом, но я думаю, что моя версия paragonie/halite не был полностью адаптирован к новейшему sodium Расширение PHP. Возможно, это будет решено для следующего PHP7.2, когда он станет основным расширением PHP.

Пока я придерживаюсь этой версии.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]