当前位置: 首页 > 知识库问答 >
问题:

使用字符串密钥BadPaddingException的Java AES 128解密

利海阳
2023-03-14

尝试将数据解密为用AES-128加密的字节数组,使用字符串密钥"keykeykeykey1"

代码

byte[] dataBytes = new byte []{(byte)0xf3,(byte)0x8b,(byte)0x0c,(byte)0xb3,(byte)0xa3,(byte)0x26,(byte)0x12,(byte)0x23,(byte)0xe0,(byte)0xe0,(byte)0x9f,(byte)0x1f,(byte)0x28,(byte)0x01,(byte)0x28,(byte)0x35};
SecretKeySpec secretKeySpec = new SecretKeySpec("keykeykeykeykey1".getBytes("UTF-8"), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] decryptedData = cipher.doFinal(dataBytes); //this line throws exception

给我BadPaddingExc0019。我错过了什么?

共有1个答案

锺威
2023-03-14

您没有在密码算法中指定模式或填充。您需要确定数据加密时使用了哪些值。

当您将algo更改为“AES/ECB/NOPANDING”时,没有错误,但这可能不一定是正确的模式或填充。

 类似资料:
  • 我想在我的项目上使用RSA/AES文件加密。我用rsa做了一对私钥/公钥和一个AES密钥,然后用公钥加密AES密钥。最后用私有RSA密钥对AES加密密钥进行解密。

  • 我有一个公钥和一个私钥,还有一个字符串,我想要解密。 公钥的格式如下: 私钥的格式如下: 我要解密的字符串已经使用公钥加密,然后我需要使用私钥解密它。

  • 今天,我写了一些代码,用AES加密字符串,用RSA加密密钥。当我试图解密所有内容时,Java给了我一个BadPaddingException。这是我的代码: 测验爪哇: 钥匙匠。爪哇: 加密机。爪哇: 解密程序。爪哇:

  • 我设置了Azure密钥库来检索RSA密钥进行加密。Azure发送给我一个KeyBundle类型的对象。此对象包含一个大小为2048的RSA类型的JsonWebKey。查看我的RSA密钥,它有两个方法,称为和。现在我正在尝试加密和解密一个简单的字符串,如下所示: 在System.Security.Cryptography.RSAImplementation.RSACNG.EncryptorDecry

  • 我想使用chacha20解密和加密字符串 BouncyCastleProvider正在使用chacha20技术。所以我包括了罐子。并尝试了代码,但无法工作。 pbe.java