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){
...
}
- Удостовериться
error_reporting
включен и поднялся достаточно высоко. - Пытаться
var_dump($encrypted)
вместо эха. Документация PHPseclib немного отсутствует, и она не детализирует поведение функции Crypt_RSA::encrypt() при сбое. Это может быть возвращениеfalse
,NULL
или пустая строка, иecho
не собираюсь сказать вам, что.