RSA шифрование. Так должно быть или это такая реализация библиотеки? Здравствуйте! Подскажите пожалуйста, должно ли так быть или это не совсем RSA? Использую библиотеку phpseclib в тестовом проекте. Генерирую 100 ключей и сохраняю их в конфигурационные файлы, где название === подсоленному хешу от публичного и приватного ключа. Длина приватного ключа === 2048.public function gen_rsa() { $this->_include_crypt('Math_BigInteger'); $this->_include_crypt('Crypt_RSA'); $rsa = new \Crypt_RSA(); for($i=0;$icreateKey(2048); $this->_save_rsa($keys['privatekey'], $keys['publickey']); } } Потом пробую поработать с этой библиотекойpublic function test_rsa() { $response = []; $this->_include_crypt('Math_BigInteger'); $this->_include_crypt('Crypt_RSA'); $rsa = new \Crypt_RSA(); $k = $this->_load_rsa('9962e61c03618f2e3eace79d604d6783'); // произвольно выбранный ключ из 100 # encrypt $rsa->loadKey($k['public']); // шифрую сообщение#1 публичным $response['enc_with_publ'] = $rsa->encrypt('public key encrypted string'); $rsa->loadKey($k['private']); // шифрую сообщение#2 приватным $response['enc_with_priv'] = $rsa->encrypt('private key encrypted string'); # decrypt $rsa->loadKey($k['public']); $response['dec_by_publ_enc_with_private'] = $rsa->decrypt($response['enc_with_priv']); $rsa->loadKey($k['private']); $response['dec_by_priv_enc_with_publ'] = $rsa->decrypt($response['enc_with_publ']); } в $response:[ "dec_by_publ_enc_with_private" => "private key encrypted string" "dec_by_priv_enc_with_publ" => "public key encrypted string" ] Теперь вопрос: Эта функция "двусторонняя"? v1: Можно шифровать публичным и расшифровать приватными v2: Можно шифровать приватными и расшифровать публичным Спрашиваю по той причине, что я не знаком достаточно с шифрованием и меня убеждают в том что так не должно быть. Что шифрование через RSA должно проходить только в одном направлении как в v1. Говорят что библиотека, которую я использую - "кривая". Рассудите пожалуйста меня и моего коллегу, кто прав а кто нет! Спасибо
RSA является асимметричным криптографическим алгоритмом, что означает, что у вас есть публичный и приватный ключи, и они используются для шифрования и расшифрования данных. И ваша реализация и использование библиотеки phpseclib выглядят правильно, если вы хотите шифровать данные с помощью публичного ключа и расшифровывать их с помощью приватного ключа (v1), или наоборот (v2).
Таким образом, ваша функция test_rsa() работает правильно и в соответствии с принципами работы RSA шифрования. Нет ничего кривого или неверного в использовании библиотеки phpseclib для этой цели.
Если у вас остались сомнения или дополнительные вопросы, не стесняйтесь задавать их для более подробного объяснения или уточнения.
RSA является асимметричным криптографическим алгоритмом, что означает, что у вас есть публичный и приватный ключи, и они используются для шифрования и расшифрования данных. И ваша реализация и использование библиотеки phpseclib выглядят правильно, если вы хотите шифровать данные с помощью публичного ключа и расшифровывать их с помощью приватного ключа (v1), или наоборот (v2).
Таким образом, ваша функция test_rsa() работает правильно и в соответствии с принципами работы RSA шифрования. Нет ничего кривого или неверного в использовании библиотеки phpseclib для этой цели.
Если у вас остались сомнения или дополнительные вопросы, не стесняйтесь задавать их для более подробного объяснения или уточнения.