aesKey = Base64.decodeBase64(encodingAesKey + "=");
类型 Base64 中的方法 decodeBase64(byte[])对于参数(String)不适用
这个问题是什么情况?求助!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个问题是因为在Java中,Base64.decodeBase64
方法期望接收一个字节数组(byte[]
)作为参数,而你尝试传递给它的是一个字符串(String
)。解决这个问题,你需要先将字符串转换为字节数组,然后再进行解码。这里是如何修正你的代码的示例:
String encodingAesKey = "你的Base64编码密钥="; // 确保去除末尾可能不需要的等号
byte[] base64Bytes = encodingAesKey.getBytes(StandardCharsets.UTF_8); // 将字符串转换为字节数组
byte[] decodedBytes = Base64.decodeBase64(base64Bytes); // 使用字节数组进行解码
这段代码首先使用getBytes(StandardCharsets.UTF_8)
方法将字符串转换为UTF-8编码的字节数组,然后用这个字节数组作为参数调用Base64.decodeBase64
方法进行解码。
请注意,如果你的encodingAesKey
字符串末尾确实有一个等号(这在Base64编码中是常见的),确保它是编码的一部分而不是误添加的。如果等号仅用于对齐或填充,并且不应成为编码密钥的一部分,则上述代码已经足够。但如果等号属于Base64编码的一部分,你应该在处理之前验证和清理输入字符串。