Шифрование RSA. Создайте шифрованный текст в PHP и расшифруйте его в Javascript

У меня возникли проблемы с расшифровкой шифрованного текста на стороне клиента / javascript, который зашифрован на стороне сервера / PHP.

Для шифрования в PHP я использую phpseclib и вот мой пример кода:

 define('PUK', 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDwMKuLMVuo7vHDwFCbpgxx+RNf xSVC2GRWq9rW0fl4snnhRdrpprPRUO1RMV0wA/ao+fvzi1Sl0lcws3srpe28iLAj Wh5vFM/pFstwzjoHBv/6n4rQouIVy2NT18aFrxlQUCs4DHy5eOo21MjQXrgHwCeP HEc7OK+VpaQ/yKKX8wIDAQAB'); include ('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $plaintext = 'My Test Msg'; $rsa -> loadKey(PUK); $ciphertext = $rsa -> encrypt($plaintext); //echo $ciphertext;//This also not working! //echo strrev(base64_encode($ciphertext)); //this is also not working! ref: http://www.frostjedi.com/phpbb3/viewtopic.php?f=46&t=141187 echo base64_encode($ciphertext); - define('PUK', 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDwMKuLMVuo7vHDwFCbpgxx+RNf xSVC2GRWq9rW0fl4snnhRdrpprPRUO1RMV0wA/ao+fvzi1Sl0lcws3srpe28iLAj Wh5vFM/pFstwzjoHBv/6n4rQouIVy2NT18aFrxlQUCs4DHy5eOo21MjQXrgHwCeP HEc7OK+VpaQ/yKKX8wIDAQAB'); include ('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $plaintext = 'My Test Msg'; $rsa -> loadKey(PUK); $ciphertext = $rsa -> encrypt($plaintext); //echo $ciphertext;//This also not working! //echo strrev(base64_encode($ciphertext)); //this is also not working! ref: http://www.frostjedi.com/phpbb3/viewtopic.php?f=46&t=141187 echo base64_encode($ciphertext); 

Для дешифрования на стороне клиента / Javascript я использую «jsencrypt», и вот код:

 var decrypt = new JSEncrypt(); decrypt.setPrivateKey('MIICXQIBAAKBgQDwMKuLMVuo7vHDwFCbpgxx+RNfxSVC2GRWq9rW0fl4snnhRdrp prPRUO1RMV0wA/ao+fvzi1Sl0lcws3srpe28iLAjWh5vFM/pFstwzjoHBv/6n4rQ ouIVy2NT18aFrxlQUCs4DHy5eOo21MjQXrgHwCePHEc7OK+VpaQ/yKKX8wIDAQAB AoGBAL2EuaZvwLIwL6VUVoYp5AH+FVJo3Ti8Q5e7rEX6kgyxTsf4dX4NIi9T2p1J BQ2A4xx7e1i0pIreyBtOUy6ik0y7e3MlmZidG91pz2KllQqwAMKrOZgPTBWBF7fr xIZERfOlZcIRrqp8ECbeHDyO6fUbfQm+o7vkxMypwjixBslJAkEA+mF8Sxvw+7D6 ntev+XsYj9Xp4wumqR2hK4WcXAAWbFmcd29tgTMKfcgw0Ru6FCGQdUvqu61PniS4 ie+u6zPORwJBAPWUos5KvEixkgSUY0PZOQavRwoXS1GEEvkjlFOyqWqUiKViT9iy UsXKxk3NAVMqIdF5RdAQ/ob9NxtxiuSxYvUCQQDUfFsBWwsebsmieCVNslvb5YyC NOcRaqXWy6MwqJpfBYW2Doh+NxTWPki/japTX1C7WtwwvhpteXhrB1AJJ4QNAkB1 RrsM6vHJgUsq9rYE07qA77lsHz2vuvPYmF4gLkTrie1LlYxt/pK6tCBJTSphzdAC mfh16XezfT8Q0wMyPWf1AkAxS//2T3J1g+dbG9dEKREcpwANxlFIEnOm9XsFd2vO I6Jr0ksaS4o0IeUBDWmMFOgCWVPdJkGrlqlVPQ6P9owA'); var uncrypted = decrypt.decrypt(ciphertext); //The ciphertext is obtained from the server by an AJAX call. 

НО "uncrypted" всегда будет нулевым!

Обратите внимание, что если я использую указанную пару Private / Public key либо в phpseclib либо в jsencrypt тогда она работает нормально. Проблема заключается только в шифровании в PHP и расшифровке в Javascript.

Это будет действительно заметно, если кто-нибудь может мне помочь в этом отношении.

Что произойдет, если вы зашифруете в Javascript и попытаетесь расшифровать в PHP? Это работает?

Если нет, то, если бы вы могли опубликовать зашифрованный текст, созданный Java, который был бы полезен. Это даст нам возможность разбить кодировку открытого текста и увидеть, какой метод заполнения – если таковой имеется – используется.

Тем не менее, вместо того, чтобы иметь это, я предполагаю, что вам нужно сделать $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1) .