数据加解密时Base64异常:Illegal base64 character 3f

时间:2024-11-07 19:36:53

现象

        用base64工具类对中文进行处理时出现异常,在数据加解密场景中经常使用

: Illegal base64 character 3f

	at .Base64$Decoder.decode0(:714)
	at .Base64$(:526)

原因分析

        原因是因为编码encode和解密decode写反了,decode不能对正常字符串进行解码,所以出现异常。异常代码如下:

String data = "这是一个小例子haha";
// 这里直接使用了decode对字符串进行解码,出现异常
byte[] a = ().decode(data);

正常用法

        String data = "这是一个小例子haha";
        // 字符串专为base64编码字符串
        String encodeStr = new String(().encode(()));
        ("encodeStr:" + encodeStr);
        // base64字符串解码
        String decodeStr = new String(().decode(encodeStr));
        ("decodeStr:" + decodeStr);

PS:出现一些无法理解的异常时,往往是因为一些很弱鸡的问题导致的。