Java 加密加密密钥数据解密中的lHash不匹配错误
当我用存储在HSM receive中的私钥解密加密的SecretKeyData时 javax.crypto.BadPaddingException:lHash不匹配 位于in.gov.uidai.kyc.client.RSAPadding.unpadOAEP(RSAPadding.java:396) 位于in.gov.uidai.kyc.client.RSAPadding.unpad(RSAPadding.java:244) 位于in.gov.uidai.kyc.client.RSAPadding.unpad(RSAPadding.java:227) 位于in.gov.uidai.kyc.client.DataDecryptorNew.decryptSecretKeyData(DataDec ryptorNew.java:437)Java 加密加密密钥数据解密中的lHash不匹配错误,java,encryption,Java,Encryption,当我用存储在HSM receive中的私钥解密加密的SecretKeyData时 javax.crypto.BadPaddingException:lHash不匹配 位于in.gov.uidai.kyc.client.RSAPadding.unpadOAEP(RSAPadding.java:396) 位于in.gov.uidai.kyc.client.RSAPadding.unpad(RSAPadding.java:244) 位于in.gov.uidai.kyc.client.RSAPaddin
private byte[]decryptedsecretkey数据(byte[]encryptedSecretKey,byte[]iv)引发异常{
试一试{
Cipher rsaciper=Cipher.getInstance(转换,providerPKCS11);
rsaciper.init(Cipher.DECRYPT_模式,privateKey);
字节[]paddedPlainText=rsaciper.doFinal(encryptedSecretKey);
/*确保前导零未剥离*/
if(paddedPlainText.length
@Manish Sahni根据我所雇佣的代码,但收到的代码不匹配。请验证我的代码有什么问题。
private byte[] decryptSecretKeyData(byte[] encryptedSecretKey, byte[] iv) throws Exception {
try {
Cipher rsaCipher = Cipher.getInstance(TRANSFORMATION_NOPADDING, providerPKCS11);
rsaCipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] paddedPlainText = rsaCipher.doFinal(encryptedSecretKey);
/* Ensure leading zeros not stripped */
if (paddedPlainText.length < keyLength / 8) {
byte[] tmp = new byte[keyLength / 8];
System.arraycopy(paddedPlainText, 0, tmp, tmp.length - paddedPlainText.length, paddedPlainText.length);
System.out.println("Zero padding to " + (keyLength / 8));
paddedPlainText = tmp;
}
System.out.println("OAEP padded plain text: " + DatatypeConverter.printHexBinary(paddedPlainText));
OAEPParameterSpec paramSpec = new OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA1, PSource.PSpecified.DEFAULT);
RSAPadding padding = RSAPadding.getInstance(RSAPadding.PAD_OAEP_MGF1, keyLength / 8, new SecureRandom(), paramSpec);
byte[] plainText2 = padding.unpad(paddedPlainText);
System.out.println("Unpadded plain text: " + DatatypeConverter.printHexBinary(plainText2));
return plainText2;
} catch (GeneralSecurityException e) {
e.printStackTrace();
throw new Exception("Failed to decrypt AES secret key using RSA.", e);
}
}