Я пытаюсь воспроизвести Java-шифрование, используя Cipher cipher = Cipher.getInstance("RSA");
с PHP и phpseclib.Phpseclib эквивалент Java RSA Encryption
Я попытался это и так много вещей, но мне кажется, что данные не правильно шифруется
$rsa = new Crypt_RSA();
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP);
$rsa->loadKey($pub_key);
$ciphertext = $rsa->encrypt($plaintext);
Я пробовал различные комбинации, как
$rsa->setMGFHash('sha512');
$rsa->setHash('sha512');
//$rsa->setMGFHash('sha256');
//$rsa->setHash('sha256');
без успеха.
Я что-то упустил?
Спасибо за ваш ответ, к сожалению, у меня нет доступа к коду Java: /. Я уже пробовал с «CRYPT_RSA_ENCRYPTION_PKCS1» без успеха. – Kevlys
Когда я пытаюсь использовать 'CRYPT_RSA_ENCRYPTION_PKCS1',' $ enciphertext' уже тот же, тогда как Java-код каждый раз производит разные ключи. Я полагаю, что 'Cipher.getInstance (« RSA »);' использует OAEP? – Kevlys
Прокладки обычно рандомизированы. Существует вариант 1 варианта дополнения PKCS # 1 v1.5, который не использует рандомизацию, поэтому каждый зашифрованный текст будет одинаковым для одного и того же ключа и открытого текста. Если вы хотите проверить совместимость рандомизированных версий, вам необходимо зашифровать в Java и расшифровать в PHP и наоборот. –