Мне нужно пройти аутентификацию через скрипт PHP на удаленном веб-сайте, а на веб-сайте используется шифрование RSA на основе JS для паролей. Вот код с сайта:JavaScript RSA-шифрование для PHP
function rsa_encrypt(strPlainText) {
var strModulus = "some_random_string";
var strExponent = "10001";
var rsa = new RSAKey();
rsa.setPublic(strModulus, strExponent);
var res = rsa.encrypt(strPlainText);
if (res) {
return res;
}
return false;
}
просмотрел много тем на этом сайте, и обнаружил, что рекомендуемый способ заключается в использовании phpseclib (если есть еще один, дайте мне знать). Однако, используя базовый пример от http://phpseclib.sourceforge.net/rsa/examples.html#encrypt,enc2, я получаю только пустую страницу. Я ввел some_random_string
в $rsa->loadKey('...');
- не уверен, что я сделал это правильно? Однако в этом примере я не вижу места для ввода strExponent
(что равно 10001).
Так что я попробовал другое решение - Encrypt and Decrypt text with RSA in PHP и изменил мой код, чтобы посмотреть следующее:
include('Crypt/RSA.php');
$privatekey = "some_random_string";
$rsa = new Crypt_RSA();
$rsa->loadKey($privatekey);
$plaintext = new Math_BigInteger('10001');
echo $rsa->_exponentiate($plaintext)->toBytes();
Однако, я получаю эту ошибку:
Fatal error: Call to a member function abs() on null in Math\BigInteger.php on line 1675
Раствор отправил некоторое время назад, так Я предполагаю, что в это время что-то изменилось в библиотеке phpseclib, и я просто не уверен, как изменить код.