私は単純な暗号化を実装したいと思います。PHPのparagonie/halite - ナトリウム定数がない?
私は最新のPHP 7.1.8を使用しています.mcryptは廃止されて以来、libsodiumについて学びました。それをインストールし、そしてこれは私のPHP情報がどのように見えるかです:
すべてが順序であるように思われます。
そして私はparagonie /岩塩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_*
として使用されることを確認しました。
多分私は何かが不足していますが、私の質問は、私はこれらの定数が不足している理由が何であるか教えてもらえますか?
ありがとうございます!
ええ、それは変です。私はソースをチェックし、定数は実際に[Sodium.stub.php]で定義されています(https://github.com/paragonie/halite/blob/49a324b4c83e52cd8dcf887a9bd71dc832488d22/stub/Sodium.stub.php#L33)いずれにせよ、私はこの[回答](https://stackoverflow.com/questions/37682227/including-paragonie-halite-in-project-doesnt-find-variables-and-functions)に示すように、libsodiumの最新バージョンをインストールする必要があると思います。 @Scott Arciszewskiは、答えがあなたの問題を解決しない場合、あなたは彼にpingすることができますプロジェクトのメンテナーです – samayo
非常にありがとうございます@サマヨ、私は再びバージョンを確認し、助けがあればお知らせします:) – Adrian
私の拡張には利用可能な 'sodium_ *'関数がありますが、これらの定数は使用できないのは不思議です。標準の 'pecl install libsodium'を使って拡張機能をインストールしました。特定のバージョンを選択しようとします。 – Adrian