AES解密报错:IllegalArgumentException: Illegal base64 character 7b

博客围绕java.util.Base64报错Illegal base64 character展开。给出报错代码,指出问题原因是传入的密文并非真正密文,因配置问题,后台获取的密文包含多余内容,然后进行解密从而报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.lang.IllegalArgumentException: Illegal base64 character 7b
    at java.util.Base64$Decoder.decode0(Base64.java:714)
    at java.util.Base64$Decoder.decode(Base64.java:526)
    at java.util.Base64$Decoder.decode(Base64.java:549)
    at com.iboxchain.goodamcht.common.util.AESUtil.decrypt(AESUtil.java:97)
.....
 

查到一篇比较详细的文章,如下,虽然没有涉及到该问题原因。

解决 java.util.Base64 报错 Illegal base64 character 的问题

 

以上问题发生的原因:

传入的密文其实不是密文。。

假设密文是A,后台获取的值需要是A,但由于配置的问题,导致后台参数得到密文是(A+其它),然后传进去解密。

 

 

 

### 回答1: 这是一个错误信息,意思是Base64编码中出现了非法字符“7b”。可能是因为在编码或解码过程中,输入的数据中包含了不支持的字符或格式错误导致的。需要检查输入数据的格式和内容,确保符合Base64编码的规范。 ### 回答2: Illegal base64 character 7b是指在base64编码中出现的非法字符“{”,这个字符不是base64字符集中的字符。base64是一种用于将二进制数据编码成ASCII字符的编码方法,它将每3个字节(24位)的数据分成4个6位的字符,并使用64个字符集中的字符来代表这些字符,这些字符包括大小写字母、数字和符号。但是,由于base64编码只使用了64个字符,因此只能表示2 ^ 6 = 64个不同的值,而一个字节(8位)可以表示256个不同的值,因此当编码的数据中包含ASCII码表之外的字符时,就会出现Illegal base64 character 7b这样的错误。 通常情况下,base64编码是用于将二进制数据转换成文本数据,这样可以在不损失数据的情况下传输或存储数据。但是,如果数据中包含了非法的字符,就会导致编码错误或解码错误,因此在进行base64编码或解码时需要注意数据的格式和内容。 如果您遇到Illegal base64 character 7b这样的错误,首先需要检查编码的数据是否包含了非法字符,如果是,则需要将这些字符删除或替换成合法的字符,然后重新进行编码或解码。如果您不确定如何处理这些非法字符,建议您查找相关的文档或咨询相关的技术人员。 ### 回答3: illegal base64 character 7b是指出现了非法的Base64编码字符7b。在Base64中,使用了64个字符来表示数据,分别是26个大写字母、26个小写字母、数字0到9以及“+”和“/”两个特殊字符。具体来说,编码时每三个字节为一组(24位),分成四组,每组6位,转换成对应的Base64字符之后连接在一起,如果最后不足三个字节,会在末尾补充1到2个0字节作为凑数位,然后用“=”字符表示。 如果出现了不属于Base64字符集的字符,例如7b,就会提示illegal base64 character错误。这可能是转换过程中出现了数据损坏或者字符集不匹配的情况,比如将非Base64编码的字符误解为Base64字符导致的错误。另外,当编码时把汉字等非ASCII字符也放入了Base64字符集中,就会出现非法字符的情况。 要解决这个问题,可以检查编码的原始数据是否正确,以及编码时使用的字符集和算法是否正确。如果是导致混淆的字符,可以考虑使用URL安全的Base64编码方式,或者使用其他编码方式(比如HEX)来解决问题。通过检查数据是否正确,可以有效减少illegal base64 character 7b错误的发生,保证编码的正确性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值