phpseclib не работает с php5-cli из терминала

Я установил пакет php5-cli на свой raspbian (ОС Debian) и загрузил phpseclib в каталог /cli/. Я создал тестовый файл для шифрования текста с помощью открытого ключа (созданного на моем сервере Apache, на котором у меня есть такая же библиотека) следующим образом:

    включают в себя ('Libs/Crypt/RSA.php');
    $rsa = новый Crypt_RSA();
    $ Rsa->loadKey($myPublicKey);
    $encrypted = $rsa->encrypt("мой текст");
    echo "result: " .$encrypted;
    

Если я попытаюсь набрать php test.php result переменная пуста. Зачем? Это из-за того, что я выполняю файл из терминала e с php5-cli вместо php5? Как я могу получить результат этой операции шифрования? Благодарю.

2 ответа

Решение

Предоставленный вами исходный код верен. Если значение $encrypted пуст, возможно из-за неверного ключа, указанного в loadKey,

По комментариям в файле RSA.php, то команда вернется false если ключ недействителен:

/**
 * Loads a public or private key
 *
 * Returns true on success and false on failure (ie. an incorrect password was provided or the key was malformed)
 *
 * @access public
 * @param String $key
 * @param Integer $type optional
 */
function loadKey($key, $type = false){
    ... 
}
  1. Удостовериться error_reporting включен и поднялся достаточно высоко.
  2. Пытаться var_dump($encrypted) вместо эха. Документация PHPseclib немного отсутствует, и она не детализирует поведение функции Crypt_RSA::encrypt() при сбое. Это может быть возвращение false,NULLили пустая строка, и echo не собираюсь сказать вам, что.
Другие вопросы по тегам