Java php 的类似物或节点加密函数

Java analogue of php or node encryption function

我正在尝试在 java 中编写一个加密函数,它类似于 php 和节点中下面提到的函数:

openssl_public_encrypt($gzipped_string_to_encrypt, $encrypt_data, $key_string,  OPENSSL_PKCS1_OAEP_PADDING);

const crypto = require('crypto');
const result =  crypto.publicEncrypt({
        key: key,
        padding: crypto.constants.RSA_PKCS1_OAEP_PADDING
    }, gzippedStringToEncrypt);

主要问题是 - 我找不到 RSA_PKCS1_OAEP_PADDING 参数的适当 java 模拟。 我是这样试过的:

Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding", BouncyCastleProvider.PROVIDER_NAME);
val oaepParameterSpec = new OAEPParameterSpec("SHA-1", "MGF1", MGF1ParameterSpec.SHA1, PSource.PSpecified.DEFAULT);
val encryptionKey = Base64.decodeBase64(keyString);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
X509EncodedKeySpec publicSpec = new X509EncodedKeySpec(encryptionKey);
Key key = keyFactory.generatePublic(publicSpec);
cipher.init(Cipher.ENCRYPT_MODE, key, oaepParameterSpec);
encrypted = cipher.doFinal(gziped);

但无法使用成功解密 php 和节点函数结果的函数解密结果。

问题中的例子是正确的。它给出了可以正确解密的输出。