Всем привет, пишу бота, который будет входить в аккаунт на одном сайте, там стоит шифрования пароля через RSA (видимо, чтобы в запросе его не было - для обеспечения безопасности). Я порылся в скриптах сайта, там алгоритм следующий: Делаем запрос на сервер /getrsakey/, получаем некий ключ (publickey_mod_ и какой-то дополнительный параметр publickey_exp (срок действия, наверно, он был таким - "010001" - но я не смотрел, изменяется ли он когда-либо), ответ примерно такой. Далее скрипт выполняет шифрование по ключу и этому доп параметру:
var pubKey = RSA.getPublicKey(results.publickey_mod, results.publickey_exp);
Потом шифрует пароль, полученный из формы:
var encryptedPassword = RSA.encrypt(password, pubKey);
Вопрос следующий, как реализовать это на PHP? Порыв в интернете, я не нашел реализацию метода getPublicKey с двумя параметрами. Спасибо за ответы.
publickey_mod - это модуль, а publickey_exp - это экспонента. Эти компоненты и образуют публичный ключ.
При помощи библиотеки phpseclib вы можете превратить эти компоненты в в объект, который можете использовать в дальнейшем.
<?php
include('Crypt/RSA.php');
// это модуль
$modulus = 'yEQs2LxSHBZgZCH0rRQQy9kmry8g2tNhQL1B9f5azNz9Ce9pXPgSRjVUo1B9Ggb/FK3jy41wWd2IfS6rse3vBzRsabMj29CVODM/19yZPmwEmjJHCgYd+AA2qweKZanDp4FLsSw/kyV5WoPN16GHEMLmLGkJFNIWtzzH5jV+S80=';
// это экспонента
$exponent = 'AQAB';
$rsa = new Crypt_RSA();
$modulus = new Math_BigInteger(base64_decode($modulus), 256);
$exponent = new Math_BigInteger(base64_decode($exponent), 256);
$rsa->loadKey(array('n' => $modulus, 'e' => $exponent));
$rsa->setPublicKey();
echo $rsa->getPublicKey();
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый деньЯ пытаюсь подключить composer к сайту на modx revolution на хостинге beget