Java 手动删除RSA/ECB/OAEPTHHA-256和MGF1PADDING添加的填充

Java 手动删除RSA/ECB/OAEPTHHA-256和MGF1PADDING添加的填充,java,encryption,rsa,padding,Java,Encryption,Rsa,Padding,我正在将PKCS11与SunJCE一起使用以解密字节数据。数据正在使用RSA/ECB/OAEPTHESHA-256和MGF1PADDING进行加密,这与PKCS11不兼容。因此,我将不得不手动删除它,但没有运气,直到现在。以下是我尝试将其删除的步骤RSA_密钥大小为2048: if (paddedPlainText.length < RSA_KEY_SIZE / 8) { byte[] tmp = new byte[RSA_KEY_SIZE / 8]; System.array

我正在将PKCS11与SunJCE一起使用以解密字节数据。数据正在使用RSA/ECB/OAEPTHESHA-256和MGF1PADDING进行加密,这与PKCS11不兼容。因此,我将不得不手动删除它,但没有运气,直到现在。以下是我尝试将其删除的步骤RSA_密钥大小为2048:

if (paddedPlainText.length < RSA_KEY_SIZE / 8) {
   byte[] tmp = new byte[RSA_KEY_SIZE / 8];
   System.arraycopy(paddedPlainText, 0, tmp, tmp.length - paddedPlainText.length, paddedPlainText.length);
   System.out.println("Zero padding to " + (RSA_KEY_SIZE / 8));
   paddedPlainText = tmp;
}

OAEPParameterSpec paramSpec = new OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, pSrc);
RSAPadding padding = RSAPadding.getInstance(RSAPadding.PAD_OAEP_MGF1, RSA_KEY_SIZE / 8, new SecureRandom(), paramSpec);
byte[] plainText = padding.unpad(paddedPlainText);
if(paddedPlainText.length
MGF1ParameterSpec.SHA256
可能应该是
MGF1ParameterSpec.SHA1
尝试了
MGF1ParameterSpec.SHA1
,但是运气不好。@ArtjomB谢谢,它实际上是与
MGF1ParameterSpec.SHA256
一起工作的,我们得到的响应是加密的,然后是Base64编码的,所以我必须先解码加密的字符串,然后才能尝试解密。